Wie kann ich die URL eines Bildes auf meinem Web unsichtbar machen?
Mit Javascript gibt es einige mehr oder weniger gute Möglichkeiten. In diesem Artikel werde ich zeigen, wie man mit ASP eine URL zu einem Bild relativ sicher verstecken kann!
Das Prinzip
Mit dem Scripting.FileSystemObject lese ich das Bild aus, und schicke es anschließend direkt an den Browser. Mit kleinen Abänderungen kann ich so auch Dateien verstecken, die zum Download gedacht sind!
urlhide.asp
<%@ Language=VBScript %> <% Response.Expires = 0 Response.ContentType = "image/jpeg" strFileName = "ppedv.jpg" strMyPath = Server.MapPath("./images") & "" & strFileName set oFileSys = Server.CreateObject("Scripting.Filesystemobject") '------ Ermitteln der Dateigroesse set oFile = oFileSys.GetFile(strMyPath) FileSize = oFile.Size set oFile = nothing |
Jetzt öffne ich die Datei mit OpenTextFile(Pfad, IOMode, Create, Format)
Pfad: URL des Bildes
IOMode : 1 = ForReading, 2 = ForWriting, 3 = ForAppending
Create : true oder false - für das Erstellen einer Datei
Format : -1 = TristateTrue(öffnen der Datei im UniCode)
set oFile = oFileSys.OpenTextFile(strMyPath, 1, false, -1) '------ Hier wird der Datei-Inhalt ausgelesen und '------ per Response.BinaryWrite ausgegeben Response.BinaryWrite(oFile.Read(FileSize)) set oFile = nothing set oFileSys = nothing %> |
Ich kann die urlhide.asp einfach starten. Ich kann diese Seite aber auch in eine HTML-Seite einbinden...
bildview.htm
... <img src="urlhide.asp"> ... |
Natürlich muß man nicht für jedes Bild so eine urlhide.asp erstellen. Um die Ausgabe von Bildern variabel zu gestalten, kann ich folgender maßen vorgehen. Ich erstelle ein HTML-File und übergebe den Name der Datei in der URL(ohne Pfad und Extension)
bildview2.htm
... <imgsrc="urlhide.asp?name=ppedv"> ... |
in der urlhide.asp ändere ich folgende Zeile
strFileName = "ppedv.jpg" |
in
strFileName = Request.QueryString("name") & ".jpg" |
Jetzt wird der Name der Bilddatei über die URL aufgerufen. Der Pfad und die Extension des Bildes bleibt versteckt.