verhindern, dass inc-dateien direkt geöffnet werden

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

  • verhindern, dass inc-dateien direkt geöffnet werden

    Hallo,

    wie verhindere ich am besten dass include-dateien direkt geöffnet werden.

    ich stelle mir eine abfrage in der art

    if (echter_dateiname == aufgerufene_datei) die();

    vor. aber wie finde ich den echten dateinamen raus?

    Gruß,
    syco23
    Zuletzt geändert von syco23; 30.10.2005, 19:55.
    [COLOR=darkblue].: 1+1=23 :.[/COLOR]

  • #2
    PHP-Code:
    <?php

    function check_datei () {
     IF ( 
    eregi('inc.php',$_SERVER['PHP_SELF']) ) {
      die();
     }
    }

    ?>
    So zum Beispiel!

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3
      Oder ganz einfach mit htaccess
      PHP Code Schnipsel

      Kommentar


      • #4
        wieso ueberhaupt include dateien, welche php-code enthalten mit .inc und nicht sinnvollerweise richtig mit .php bezeichnen?
        dann wuerde sich das problem nicht ergeben, da die funktionen innerhalb der datei ohne aufruf auch nicht ausgefuehrt werden.
        ergebnis: eine leere anzeige - so wie gewuenscht.
        1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

        /(bb|[^b]{2})/

        Kommentar


        • #5
          Man kann die include Dateien auch ausserhalb des Webroots anlegen und somit sind sie auch vor unauthorisiertem Zugriff geschützt

          Kommentar


          • #6
            Original geschrieben von loci
            wieso ueberhaupt include dateien, welche php-code enthalten mit .inc und nicht sinnvollerweise richtig mit .php bezeichnen?
            dann wuerde sich das problem nicht ergeben, da die funktionen innerhalb der datei ohne aufruf auch nicht ausgefuehrt werden.
            ergebnis: eine leere anzeige - so wie gewuenscht.

            dateiname.inc.php !

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              in der hauptdatei define('SOME_SPECIAL',true);


              in den include dateien if (!defined('SOME_SPECIAL')) {
              header ('HTTP/1.1 404 Not Found');
              echo "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n"
              . "<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n"
              . "The requested URL " . $PHP_SELF . " was not found on this server.<p>\n<hr>\n"
              . $_SERVER['SERVER_SIGNATURE'] . "</body></html>";
              exit;
              }

              oda schlicht die();

              Kommentar


              • #8
                bpieper, du kannst prüfen was du willst, es nützt nichts, wenn die Datei dateiname.inc heißt und .inc nicht - durch Einstellung von Apache/IIS/... - geparst wird

                Kommentar


                • #9
                  die include dateien heissen whatever.inc.php

                  Kommentar


                  • #10
                    bpieper
                    dann brauchst du auch keine konstante o.ä., denn üblicherweise beinhalten include dateien nur funktionen- und klassendeklarationen ohne jegliche ausgabe.

                    Kommentar


                    • #11
                      was syco in den include dateien drin stehen hat kann ich so nicht erkennen. ich denke er wird wissen ob er ausgaben macht oder nicht und dann einen der vorschläge benutzen

                      Kommentar


                      • #12
                        das beste wäre, er meldet sich mal zurück !

                        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                        sondern mit den Augen das Manual zu lesen.

                        Kommentar


                        • #13
                          PHP-Code:
                          function check_datei () {
                           IF ( 
                          eregi('inc.php',$_SERVER['PHP_SELF']) ) {
                            die();
                           }

                          diese Methode gefällt mir am besten

                          die Dateinamen enden natürlich auf inc.php

                          es sind auch einige darunter, die direkt code ausgeben und auch gewisse aufgaben ausfürhen wie z.B. Bilder speichern, header, etc.

                          htaccess wäre auch eine gute möglichkeit.
                          [COLOR=darkblue].: 1+1=23 :.[/COLOR]

                          Kommentar

                          Lädt...
                          X