Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Sicherstellen das Datei includet wurde?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Sicherstellen das Datei includet wurde?

    hiho,
    ich sitze derzeit an folgendem Problem:
    Arbeite mit dynamic includes bei meiner Seite was dann standardmäßig abläuft das eben der $action-Parameter der index.php dazu führt das der jeweilige content im Ordner ./content/ eingebunden wird.

    Mir geht es jetzt darum, dass ich sicherstellen will das Dateien im Ordner ./content/ nur aufgerufen werden, indem sie von meiner index.php included werden (damit keine Sicherheitslücken entstehen indem man den Login umgeht oder Seiten, die durchs aufrufen per ajax bestimmt sind und irgendwelche Datenbankanfragen absenden, einfach so aufrufen kann)

    Einfache Frage: Wie mache ich das?

    Meine Idee wäre gewesen, in der index.php eine variable zu setzen, z.b. $calledByIndex = TRUE; oder sowas und dann eben am Anfang jedes Scripts in ./content/ zu prüfen ob diese Variable TRUE ist. Mit register_globals auf off sollte es einem Nutzer ja nicht möglich sein diese Variable selbst zu setzen, oder?

    Jetzt dachte ich mir ich bin sicher nicht der erste Schlauberger der sowas sucht, vielleicht gibts dazu ja eine elegantere Lösung? Evtl. ist sowas in der Richtung ja sogar in PHP eingebaut? Was mich an meiner Lösung stört ist ganz einfach, dass ich am Anfang jeder .php-Datei die Abfrage machen muss. Das ist nicht nur nervig, sondern wenn mans vergisst hat man uU ne riesen Sicherheitslücke.

    Ideen?
    Danke

    mfg

  • #2
    Unabhängig von register_globals kannst Du eine Konstante definieren und abtesten. Vielleicht sogar eine Konstante, die Du für irgendetwas halbwegs sinnvoll nutzen kannst.
    PHP-Code:
    define('PRODUCT_VERSION''0.9'); 
    PHP-Code:
    if ( !defined('PRODUCT_VERSION') ) {
      die(
    '...');

    Kommentar


    • #3
      Dateien die nur zum Include vorgesehen sind sollten grundsätzlich nicht im wwwroot/public_html/htdocs oder einem ihrer Unterordner liegen.
      "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

      Kommentar


      • #4
        Zitat von Chriz Beitrag anzeigen
        Dateien die nur zum Include vorgesehen sind sollten grundsätzlich nicht im wwwroot/public_html/htdocs oder einem ihrer Unterordner liegen.
        sag das mal den Webspace-Anbietern ...
        Wer hat schon Zugriff auf Verzeichnisse außerhalb des root ?
        Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

        Kommentar


        • #5
          Zitat von Koala Beitrag anzeigen
          sag das mal den Webspace-Anbietern ...
          Wer hat schon Zugriff auf Verzeichnisse außerhalb des root ?
          In dem Fall habe ich das sogar Allerdings würde ich natürlich gerne alle Page-Dateien zusammenhalten.

          Hat die Methode über Konstanten (die mir sehr gut gefällt) denn irgendwelche möglichen Sicherheitslücken? Weil eigentlich müsste ich damit ja abgesichert sein und könnte die zu includenden Dateien beim Rest meiner Page behalten.

          Aber im Notfall kann ich die Dateien natürlich auch außerhalb es Roots ablegen wenn ich dadurch mehr Sicherheit habe.

          mfg

          Kommentar


          • #6
            Nun, nehmen wir mal an irgendwas zerschiesst deine Apache-Konfig und der Indiander führt PHP-Dateien nicht mehr aus, sondern bietet sie zum download an... was nun?

            Kommentar


            • #7
              Schütz den Ordner halt mit .htaccess, dieser Konstanten-Schutz ist arg angestaubt.
              Aber gehen tuts ja alles erstmal.
              "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

              Kommentar


              • #8
                Zitat von cycap Beitrag anzeigen
                Nun, nehmen wir mal an irgendwas zerschiesst deine Apache-Konfig und der Indiander führt PHP-Dateien nicht mehr aus, sondern bietet sie zum download an... was nun?
                Dann hab ich wohl onehin ein Problem weil nichts mehr geht
                Ne, aber stimmt schon. Werde dann wohl lokal alles in einem Ordner belassen und auf dem Server nur die index.php ins www-root laden. Scheint mir die sicherste Methode.

                Danke euch.

                Kommentar

                Lädt...
                X