Includen verbieten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Includen verbieten

    Hallo,
    ich habe bemerkt, dass man meine Dateien auf der Homepage per include(); einbinden kann !

    Wie kann ich das verhindern ?
    Ich habe bis jetzt eine Referer-Sperre, die so aussieht:

    <?
    $dir['domain'] = "http://www.meinedomain.com/"

    if($HTTP_REFERER!=""){
    if(!eregi($dir['domain'],$HTTP_REFERER)){
    header("Location: ".$dir['domain']);
    }
    }
    ?>

    Wie kann ich nun den Referer beim includen herausfinden ?

  • #2
    Deinen Quellcode kann niemand Includen, keine Sorge! :-) Nur die bereits geparste HTML-Datei, was nicht so schlimm ist.

    Kommentar


    • #3
      hi, zusammen

      hannes: soviel ich weiß brauchst du bei der sache nicht den referrer, sondern den namen des scriptes ( weiß nich genau, wie der heiß, steht aber in phpinfo() )

      @pekka: ich weiß nicht genau, im moment hab ich auch irgendwie sorge, dass meine scripte nicht sicher sind, weil:
      wenn man die datei in der das adminpasswort als variable gespeichert ist includet, kann man dummerweise, so viel ich weiß, das passwort auch ausgeben.
      deswegen wär sowas, wie von hannes ( eben nicht mit referrer, sondern name des scripts ) genau das richtige, oder ?

      Kommentar


      • #4
        Das ist gar nicht nötig!
        Wenn ich eine Datei auf Eurer Site include, etwa http://www.poe.de/mysqladmin/config.inc.php, bekomme ich ein Ergebnis, das - nix enthält, da der Code schon von PHP übersetzt ist. Include(), fopen() usw. können nur auf dem eigenen Server "von hinten", also direkt via Dateisystem, Dateien öffnen. Von anderen Servern gehts brav, wie üblich über http oder ftp. Faustregel: Ein PHP-Skript, das im Browser übersetzt (also ohne Quellcode) erscheint, sieht genauso auch beim Zugriff durch Skripte auf anderen Servern aus.

        Jetzt kann es sein, dass Eure Includedateien mit einer Endung versehen sind, die nicht als PHP-Skript behandelt wird (etwa .inc). Dann sieht man den Quellcode und die Passwörter tatsächlich! Medizin: Dateien umbenennen oder folgende Zeile in die .htaccess-Datei des entsprechenden Verzeichnisses schreiben:

        AddType application/x-httpd-php .inc
        oder manchmal auch
        AddType application/x-httpd-php3 .inc

        Oder hab ich Euch irgendwo missverstanden?

        Kommentar


        • #5
          aso, wenn du dir sicher bist, dass man keine variablen includen kann, dann bin ich ja beruhigt und mein problem ist gelöst.
          ich war nur ein wenig stutzig, als ich aus eine datei, zb. passwort.inc.php, die ich mit include eingebunden habe alle variablen etc. bekommen habe.....

          THX

          Kommentar


          • #6
            Das geht, klar ... wenn in der includeten Datei $passwort="meinpasswd"; gesetzt wird, ist diese Variable verfügbar.
            und spätestens mit var_dump ($GLOBALS) kriegt man dann auch Namen und Werte aller Variablen.

            Aber wer Paßwörter IRGENDWO im Klartext ablegt, ist selbst schuld!
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              das heißt, ich tus in ner MySQL tabelle ablegen, oder wie ?!

              CU

              Kommentar


              • #8
                Zum Beispiel! Aber Ihr diskutiert m.E. am Punkt vorbei - ich kann von einer fremden Domain aus keine php-Dateien includen, wenn diese eine bei Apache als PHP registrierte Endung haben.

                Kommentar

                Lädt...
                X