Proteggere le immagini con Classic ASP

2 pagine in totale: <<Indietro 1 [2]

Adesso dobbiamo conoscere il tipo di immagine che stiamo per mostrare per poter poi indicare il ContenType corretto, per far questo controlliamo l'estensione del file e impostiamo il ContentType appropriato:

<%
FType = LCase (Right(FName, 4))
 
Select Case FType
  Case ".jpg"
   FType = "image/jpeg"
  Case ".gif"
   FType = "image/gif"
  Case ".tif"
   FType = "image/tiff"
  Case ".png"
   FType = "image/png"
  Case ".bmp"
   FType = "image/bmp"
  Case else
   FType = ""
End Select
%>

Ora possiamo procedere con le verifiche dell'autenticazione e dell'esistenza del file e inviarlo al browser mediante l'oggetto Stream di ADO:

<%
if Session("AutenticazioneOK") = "OK" and FExists and FType<>"" then
  Dim objStream
  Set objStream = Server.CreateObject("ADODB.Stream")
 
  objStream.Type = adTypeBinary
  objStream.Open
  objStream.LoadFromFile FName
 
  'Al browser
  Response.ContentType = FType
  Response.BinaryWrite objStream.Read
 
  objStream.Close
  Set objStream = Nothing
end if
%>

Se una delle condizioni non è verificata, non viene inviato nulla al browser. Si può scegliere anche di creare un'immagine predefinita che indichi che l'utente non è autenticato e mostrare quella, sta a voi la scelta.

Aggiungiamo l'autenticazione

Creiamo un ulteriore file, chiamiamolo ProvaProtezione.asp, che verifica le credenziali e setta le variabili di sessione, per inserire infine l'immagine nel contesto della pagina:

<%
if ........(codice per verificare l'autenticazione) ...... then
  Session("AutenticazioneOK") = "OK"
else
  Session("AutenticazioneOK") = ""
end if
'imposto la variabile di sessione con il nome dell'immagine da mostrare
Session("ImgName") = "My_Img.jpg"
%>
..... Contenuto della pagina  .........
<img src="readimg.asp" alt="ecco la foto protetta">
..... Contenuto della pagina  .........

Se proviamo ad eseguire il file ProvaProtezione.asp (e abbiamo le credenziali giuste per l'autenticazione) la nostra immagine ci verrà mostrata in maniera del tutto trasparente.

Conclusioni

Siamo così riusciti a proteggere una nostra cartella di immagini da sguardi indiscreti, nascondendo l'esatta posizione delle immagini e impedendo anche che utenti maliziosi possano aggirare le nostra protezioni, il tutto con una ventina di righe di codice e due pagine ASP classiche.

Spesso si dice che ASP è morto a che ASP.NET entro breve lo toglierà di scena, questo script ci mostra che le possibilità del buon vecchio ASP non sono da disprezzarem, anche se transizione verso il .NET Framework sarà lenta e graduale.

Approfondimenti

2 pagine in totale: <<Indietro 1 [2]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC