LooPuS_61: htaccess - fremdverlinkung auf root server verhindern

ich will ordner für fremdverlinkung sperren
nur meine seite soll zugriff auf die dateien darin haben
auch nicht durch seperat eingeben in browser soll die datei nicht erreichbar sein

mit tausend verschiedenen htaccess varianten habe ich es versucht hier ein paar beispiele:
----------------------------------

in diesem fall verhindert er zwar zugriff von fremden jedoch sieht er user aus meiner page auch als fremde und verweigert auch da den zugriff

ErrorDocument 403 http://meinedomain.de/verboten.html

order deny,allow
deny from all
allow from meinedomain.de

----------------------------------
dieser fall soll bei allen funktionieren.. nur nicht bei mir ... bei mir zeigt er internal server error an d.h. da is n fehler drin aber ich find ihn nich

RewriteEngine on
#RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://meinedomain.de/.*$ [NC]
RewriteRule .*.(zip|rar|mpg|mp3)$ http://meinedomain.de/verboten.html [R,NC]

Options All -Indexes
-----------------------------------
in diesem fall ist es meinen usern der zugriff erlaubt. sogar den fremden seiten ist es nicht zugelassen auf die dateien zuzugreifen.... so bis dahin alles schön gut
aberrrrr.... durch seperates eingeben in den browser haben wieder alle zugriff auf die dateien

<Files ~ ".(gif|jpe?g|png|mp3|zip|rar|mpg|mpeg|avi)$">

ErrorDocument 403 http://web1.g402.greatweb.de/albumler/verboten.html

SetEnvIfNoCase Referer ^http://.* Verboten
SetEnvIfNoCase Request_URI .*verboten.html$ !Verboten
SetEnvIfNoCase Referer ^http://(.)*(.){0,1}web2.g402.greatweb.de.* !Verboten

Order Allow,Deny
Deny from env=Verboten
Allow from all

</Files>

es muss doch irgendwie mit dem ersten beispiel klappen mit deny from all
nur die kunst ist wie sag ich dem dass er links aus meiner seite erlauben soll...

ErrorDocument 403 http://meinedomain.de/verboten.html

order deny,allow
deny from all
allow from meinedomain.de

ich hab alle möglichen variationen damit ausprobiert
zb.
die letzte zeile verändert zu
http://meinedomain.de
meinedomain.de
[ip des server]

es geht einfach nicht

gibt es eine andere möglichkeit die dateien im ordner zu schützen außer htaccess

[ich will kein passwort schutz, nur dass ich s mal gesagt hab]

ich hab zwar keine hoffnung aber frag auch mal euch... ich hoffe es kann mir einer helfen

seit einer woche sitz ich davor und suche nach einer lösung...

  1. Hi,
    ich tippe mal drauf, du hast auf deinem Rootserver Confixx.

    Das erlaubt meines Wissens nur bestimmte aktionen in der .htaccess
    Ich tippe mal drauf, das du deine Aktionen nicht ausführen kannst

    1. Hi,
      ich tippe mal drauf, du hast auf deinem Rootserver Confixx.

      Das erlaubt meines Wissens nur bestimmte aktionen in der .htaccess
      Ich tippe mal drauf, das du deine Aktionen nicht ausführen kannst

      und wie soll ich diese aktionen freigeben?

      ich hab vollen zugriff auf den server

      1. Hi,

        und wie soll ich diese aktionen freigeben?

        ich hab vollen zugriff auf den server

        Das gibt man in der Apache-Conf frei (httpd.conf oder apache2.conf)
        Wie das genau geht, solltest du dir selbst anlesen.
        Denn jeder der einen Rootserver betreibt sollte zumindest in Grundzügen das System verstehen, mit dem er arbeitet.

        Alles andere ist so, als wenn du dich in ne Boing setzt und einfach das Fliegen versuchst, ohne auch nur die geringste Ahnung zu haben. Ein Server, dessen Betreiber keine Ahnung hat, stellt durchaus eine Gefahr dar. (DDoS, Openrelay, ...)

  2. Hallo,

    bei mir zeigt er internal server error an d.h. da is n fehler drin aber ich find ihn nich

    was sagt das errorlog?

    aberrrrr.... durch seperates eingeben in den browser haben wieder alle zugriff auf die dateien

    gegen direktes Eingeben der URL kannst du dich nicht "schützen".

    Grüße aus Nürnberg
    Tobias

    1. Hi,

      gegen direktes Eingeben der URL kannst du dich nicht "schützen".

      Wer hat dir denn sowas erzählt? Sicher kannst du Dateien so sperren, das sie nicht im Browser aufrufbar sind.

      1. Hallo Manuel,

        gegen direktes Eingeben der URL kannst du dich nicht "schützen".
        Wer hat dir denn sowas erzählt? Sicher kannst du Dateien so sperren, das sie nicht im Browser aufrufbar sind.

        ja, natürlich - in dem Fall ist das aber nicht gewünscht das die Dateien überhaupt nicht aufrufbar sind :-) Mit einem Deny from all kann man aber natürlich jeglichen Zugriff unterbinden.

        Grüße aus Nürnberg
        Tobias

        1. Hallo Tobias,

          gegen direktes Eingeben der URL kannst du dich nicht "schützen".

          Sicher kannst du Dateien so sperren, das sie nicht im Browser aufrufbar sind.

          ja, natürlich - in dem Fall ist das aber nicht gewünscht das die Dateien überhaupt nicht aufrufbar sind :-)

          Die Prüfung auf einen nicht vorhandenen Referrer hätte weniger negative Konsequenzen und würde das Selbe bewirken. Allerdings ist davon abzuraten.

          Grüße
          Roland

  3. Moin!

    order deny,allow
    deny from all
    allow from meinedomain.de

    Kann nicht funktionieren, mit "allow" definierst du, welche IPs oder Hostnamen zugreifen dürfen - deine legalen und illegalen Besucher haben aber alle andere IPs und Hostnamen, mit denen sie online gehen, als "meinedomain.de". Mit dieser Konfiguration könnte nur ein Browser, der auf deinem Serverrechner läuft, zugreifen.

    Vergiss diese Methode für dein Problem ganz schnell wieder, sie bringt dich nicht zum Ziel.

    RewriteEngine on
    #RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://meinedomain.de/.*$ [NC]
    RewriteRule .*.(zip|rar|mpg|mp3)$ http://meinedomain.de/verboten.html [R,NC]

    Wenn das nicht geht (habe gerade keine große Lust, das nachzustellen und auszuprobieren), dann steht der Grund dafür wahrscheinlich im Error-Logfile deines Servers. Alternativ kannst du auch ein separates Rewrite-Logfile anlegen lassen, in dem dann nur das Rewrite behandelt wird.

    <Files ~ ".(gif|jpe?g|png|mp3|zip|rar|mpg|mpeg|avi)$">

    ErrorDocument 403 http://web1.g402.greatweb.de/albumler/verboten.html

    SetEnvIfNoCase Referer ^http://.* Verboten
    SetEnvIfNoCase Request_URI .*verboten.html$ !Verboten
    SetEnvIfNoCase Referer ^http://(.)*(.){0,1}web2.g402.greatweb.de.* !Verboten

    Order Allow,Deny
    Deny from env=Verboten
    Allow from all

    Diese Methode setzt wie das Rewriting oben am Referrer an. Das ist eine freiwillige, eventuell gefälschte Angabe des besuchenden Browsers, auf welcher Seite er sich zuvor befunden hat. Logisch: Wenn der erste Abruf deiner Datei nichts bringt, weil der falsche Referrer gesendet wurde, wird ein nachfolgendes Wiederholen entweder den Referrer auf "Leer" setzen oder seine Domain mit hineinbringen - und die hast du ja erlaubt.

    gibt es eine andere möglichkeit die dateien im ordner zu schützen außer htaccess

    Natürlich gibt es diverse Möglichkeiten. Du könntest beispielsweise ein Cookie setzen und damit eine Session auf dem Server verknüpfen. Anhand der Session kannst du dann feststellen, ob der Besucher schon ein paar deiner eigenen Seiten angesehen hat, oder ob er direkt eine Datei abruft. Das bedeutet aber auch, dass alle deine Dateien durch ein prüfendes Skript geschleust werden müssen.

    Alternativ kannst du natürlich auch die URLs der Dateien regelmäßig verändern. Das muß auf deiner Seite gar kein riesiger Aufwand werden, wenn du dafür ein passend programmiertes Skript einsetzt. Veränderliche URLs können nicht von anderswo her lange Zeit verlinkt werden. Es würde ja schon reichen, wenn die Dateien jeden Tag in einem anderen Unterverzeichnis (mit Tagesdatum) liegen würden. Du selbst mußt dann nur regelmäßig das Verzeichnis umbenennen und deine Links passend generieren - oder du läßt dir die meiste Arbeit von mod_rewrite abnehmen, ich denke, da gibt es mit Sicherheit Automatisierungsmöglichkeiten.

    • Sven Rautenberg