mod_rewrite: Rewrite bei JS-Files nicht möglich?
Daniel J.
- webserver
Hallo,
ich setze für ein Projekt folgende Rewrite-Konditionen ein, um ein direktes Anzeigen verschiedener Dateitypen zu verhindern.
RewriteCond %{REQUEST_FILENAME} ^(.*).cnt$ [OR]
RewriteCond %{REQUEST_FILENAME} ^(.*).lng$ [OR]
RewriteCond %{REQUEST_FILENAME} ^(.*).js$
RewriteEngine on
RewriteRule ^(.*)$ neuer_URL
CNT- und LNG-Dateien werden per PHP eingebunden (bei diesen Dateitypen funktioniert die Umleitung auch), während JS-Scripts über das <script>-Tag einbezogen werden. Hier stehen mir nach der Umleitung die Informationen aus der JS-Datei offenbar nicht mehr zur Verfügung, die Fehlerkonsole meldet mir dann das Fehlen einer Funktion, die in dieser JS-Datei definiert ist. Wie sage ich nun dem Server, dass er bei JS nur dann umleiten soll, wenn diese nicht von meinem Hauptscript angefordert wird - wenn also zum Beispiel jemand den Namen der Datei in die Adresszeile eingibt, um sie zu lesen oder herunterzuladen?
Gruß,
Daniel
Wie sage ich nun dem Server, dass er bei JS nur dann umleiten soll, wenn diese nicht von meinem Hauptscript angefordert wird - wenn also zum Beispiel jemand den Namen der Datei in die Adresszeile eingibt, um sie zu lesen oder herunterzuladen?
Es gibt keine verlässliche Methode zu sagen, welche Ressource eine andere Ressource anfordert.
Der Referrer ist unzuverlässig.
Eine andere Methode, Cookies, gibt dir Aufschluss über den Agent.
Dies bedingt jedoch, dass ein Cookie auswertender Prozess die Auslieferung von zu schützenden Ressourcen managed.
Im einfachsten Fall kannst du eine Cookieabfrage bereits in htaccess integrieren.
mfg Beat
»»Es gibt keine verlässliche Methode zu sagen, welche Ressource eine andere Ressource anfordert.
Der Referrer ist unzuverlässig.
Eine andere Methode, Cookies, gibt dir Aufschluss über den Agent.
Dies bedingt jedoch, dass ein Cookie auswertender Prozess die Auslieferung von zu schützenden Ressourcen managed.
Im einfachsten Fall kannst du eine Cookieabfrage bereits in htaccess integrieren.mfg Beat
Danke, das könnte mich sogar weiterbringen. :-)
Hello,
ich setze für ein Projekt folgende Rewrite-Konditionen ein, um ein direktes Anzeigen verschiedener Dateitypen zu verhindern.
RewriteCond %{REQUEST_FILENAME} ^(.*).cnt$ [OR]
RewriteCond %{REQUEST_FILENAME} ^(.*).lng$ [OR]
RewriteCond %{REQUEST_FILENAME} ^(.*).js$
RewriteEngine on
RewriteRule ^(.*)$ neuer_URLCNT- und LNG-Dateien werden per PHP eingebunden (bei diesen Dateitypen funktioniert die Umleitung auch), während JS-Scripts über das <script>-Tag einbezogen werden. Hier stehen mir nach der Umleitung die Informationen aus der JS-Datei offenbar nicht mehr zur Verfügung,
Klar, weil nur da deine "Umleitung" überhaupt greift.
Der Rewrite-Modus kann doch nur aktiv werden, wenn per HTTP/HTTPs zugegriffen wird und nicht, wenn direkt über das Dateisystem zugegriffen wird.
Deine JavaScript-Files MÜSSEN vom Client angefordert werden können!
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi,
Wie sage ich nun dem Server, dass er bei JS nur dann umleiten soll, wenn diese nicht von meinem Hauptscript angefordert wird - wenn also zum Beispiel jemand den Namen der Datei in die Adresszeile eingibt, um sie zu lesen oder herunterzuladen?
Du möchtest also dein Script "schützen"?
Dass das absolut nicht geht, kannst du zahlreich im Archiv recherchieren.
MfG ChrisB
Hi,
Du möchtest also dein Script "schützen"?
Dass das absolut nicht geht, kannst du zahlreich im Archiv recherchieren.
MfG ChrisB
Ja, ich will das Script schützen. Aber wenn es nun wirklich nicht geht, muss ich mich damit abfinden.
Danke für alle Antworten!
Hello,
Ja, ich will das Script schützen. Aber wenn es nun wirklich nicht geht, muss ich mich damit abfinden.
Wie willst Du ein Script schützen, dass im Klartext benutzt werden soll?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
»» Ja, ich will das Script schützen. Aber wenn es nun wirklich nicht geht, muss ich mich damit abfinden.
Wie willst Du ein Script schützen, dass im Klartext benutzt werden soll?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Ich möchte eigentlich nur vermeiden, dass jemand den Inhalt der Datei zu Gesicht bekommt bzw. es herunterlädt. Mein Ansatz wäre der gewesen, dass ich bei Direktzugriff auf die Hauptseite umleite. Das scheint so nicht zu funktionieren.
Hello,
bitte kein FOTU/TOFU http://de.wikipedia.org/wiki/TOFU
Ich möchte eigentlich nur vermeiden, dass jemand den Inhalt der Datei zu Gesicht bekommt bzw. es herunterlädt. Mein Ansatz wäre der gewesen, dass ich bei Direktzugriff auf die Hauptseite umleite. Das scheint so nicht zu funktionieren.
Du hast das Prinzip noch nicht begriffen.
Wenn die JavaScript-Funktionen vom Client ausgeführt werden sollen, dann muss er sie auch herunterladen können. Ob der Request dafür nun direkt oder durch einen Sekundärrequest (also durch das bereitgestellte Dokument) durchgeführt wird, kann der Server nicht sicher unterscheiden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
Du hast das Prinzip noch nicht begriffen.
Wenn die JavaScript-Funktionen vom Client ausgeführt werden sollen, dann muss er sie auch herunterladen können. Ob der Request dafür nun direkt oder durch einen Sekundärrequest (also durch das bereitgestellte Dokument) durchgeführt wird, kann der Server nicht sicher unterscheiden.
Du hast natürlich vollkommen recht. Ich habe das Prinzip zwar begriffen, aber leider nur 10 Meter weit gedacht. Klar muss der Client das Ding runterladen können...
Danke!
Moin!
Du hast natürlich vollkommen recht. Ich habe das Prinzip zwar begriffen, aber leider nur 10 Meter weit gedacht. Klar muss der Client das Ding runterladen können...
Und wenn ich sehen will, was dein Skript macht, dann wähle ich im Firebug die entsprechende Ansicht, die alle geladenen Javascripte darstellt - ohne weiteren Serverzugriff.
Gut, dass du deinen Irrtum nicht weiter verfolgst. :)
- Sven Rautenberg