ron: Datei vor Zugriff schützen

hallo Allesammt,

ich möchte eine Textdatei (Emails) auf dem Server vor Zugriff schützen.
vor Google wie auch aufrufen durch den Browser.

3 php Dateien sollen auf diese Datei zugriff haben (gleicher Server (server1))
so wie eine weitere php Datei auf einem anderen Server.

Über einen Link auf einer Internetseite (Die Seite befindet sich hinter einem Passwortgeschützten Bereich (htaccess) auf dem anderen Server (server2)) soll die Textdatei im Browser angezeigt werden.

Die Textdatei befindet sich in einem Unterordner.

Wie stelle ich das am schlausten an?
per .htaccess?
folgendes habe ich versucht, liefert aber nicht das gewünschte Ergebnis...

Order deny,allow
Deny from all
Allow from server1.de
Allow from server2.de

und sicher soll das Ganze ja auch sein.
Über Hilfe und Hinweise würde ich mich freuen.

Gruß ron

  1. Hallo Ron,

    Order deny,allow
    Deny from all
    Allow from server2.de (siehe [1])

    ist schon mal soweit in Ordnung. Nun must Du noch ein script erstellen, was die Datei auf server1.de von server2.de aus ausliest und dem Nutzer zur anzeige bringt. (<?php readfile('http://server1.de/geheim.eml'); ?>)

    Sollte "server2.de" auf einem Sharedhosting-Server (etliche Domains teilen sich eine IP-Adresse) sein, ist diese Konfiguration

    1. nur über die IP-Adresse von server1.de realisierbar,
    2. unsicher, da jeder vom selben Server auf diese Daten zugreifen könnte

    Wenn die Authentifizierung auf server2.de mit Base64 und ohne SSL-Verschlüsselung durchgeführt wird, ist dies allerdings ausreichend und es bedarf keiner weitergehenden Überlegungen an Sicherheit.

    Gruß aus Berlin!
    eddi

  2. Hallo,

    Order deny,allow
    Deny from all
    Allow from server1.de
    Allow from server2.de

    Du weißt schon, dass dieses Regelwerk nur für Apache-interne Zugriffe auf _Ressourcen_ über HTTP gelten?

    Wenn Du von einem anderen Server mit PHP auf die _Datei_ zugreifen willst, wirst Du das über FTP machen müssen. Dafür gelten diese Regeln nicht.

    Wenn Du die Ressource generell schützen willst gegen HTTP-Zugriffe, reicht es i.d.R., der Datei (die diese Ressource beliefert) einen passenden Namen zu geben. Standard wäre das Präfix '.ht'. Probier aus. ob es klappt. Wenn nicht, musst Du in die Serverkonfiguration schauen, wie das "Sperrpräfix" bei Dir heißt.

    LG
    Chris

    1. hi,

      Order deny,allow
      Deny from all
      Allow from server1.de
      Allow from server2.de

      Du weißt schon, dass dieses Regelwerk nur für Apache-interne Zugriffe auf _Ressourcen_ über HTTP gelten?

      Wieso intern?

      Wenn Du von einem anderen Server mit PHP auf die _Datei_ zugreifen willst, wirst Du das über FTP machen müssen. Dafür gelten diese Regeln nicht.

      Gerade _wenn_ das PHP-Script auf server1.de oder server2.de läuft, hat er doch damit den Zugriff aus diesem Script heraus per HTTP explizit erlaubt, und alle HTTP-Zugriffe anderer Herkunft unterbunden.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hallo,

        Order deny,allow
        Deny from all
        Allow from server1.de
        Allow from server2.de

        Du weißt schon, dass dieses Regelwerk nur für Apache-interne Zugriffe auf _Ressourcen_ über HTTP gelten?

        Wieso intern?

        Weil Zugriffe, die nicht über den derart konfigurierten Apache stattfinden, keínerlei Rücksicht darauf nehmen.

        Rein theoretische Möglichkeit: Installation eines weiteren HTTPD, der auf einen anderen Port hört...

        LG
        Chris

        1. hi,

          Du weißt schon, dass dieses Regelwerk nur für Apache-interne Zugriffe auf _Ressourcen_ über HTTP gelten?

          Wieso intern?

          Weil Zugriffe, die nicht über den derart konfigurierten Apache stattfinden, keínerlei Rücksicht darauf nehmen.

          Rein theoretische Möglichkeit: Installation eines weiteren HTTPD, der auf einen anderen Port hört...

          Dann hat ich dich bzgl. "nur für Apache-interne Zugriffe" missverstanden - einen von außerhalb hereinkommenden Request mag ich nicht als "Apache-intern" bezeichnen.

          Dass man Sicherheitsmechanismen, die auf Programmebene implementiert sind, idR. dadurch umgehen kann, dass man ein anderes Programm nutzt, ist natürlich offensichtlich.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Hallo,

            Weil Zugriffe, die nicht über den derart konfigurierten Apache stattfinden, keínerlei Rücksicht darauf nehmen.

            Rein theoretische Möglichkeit: Installation eines weiteren HTTPD, der auf einen anderen Port hört...

            Dann hat ich dich bzgl. "nur für Apache-interne Zugriffe" missverstanden - einen von außerhalb hereinkommenden Request mag ich nicht als "Apache-intern" bezeichnen.

            Ja, der Request kommt typischerweise immer von "außen". Aber die Sicherheitseinstellungen gelten nur innerhalb des Apache-Programms.

            Anders ist das z.B. mit dem NOVELL Border Manager, oder einer Firewall, die unerwünschte Zugriffe von außen gar nicht erst an den Webserver (oder sonstige Applikation / Dienst) weiterleiten.

            LG
            Chris