Sicherheit meines INCLUDE-Scrips

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

  • Sicherheit meines INCLUDE-Scrips

    Da ja INCLUDE relativ unsicher ist, wollte ich mal fragen, ob es noch Verbesserungen an meinem INCLUDE-Script gibt:

    PHP-Code:
    <?php

    $ladeseite 
    "";

    if (!
    $site) {$ladeseite "news.php";}
    if (
    $site == "news"$ladeseite "news.php";
    if (
    $site == "reports"$ladeseite "reports.php";
    if (
    $site == "bilder"$ladeseite "bilder.php";
    if (
    $site == "mitglieder"$ladeseite "mitglieder.php";
    if (
    $site == "glossar"$ladeseite "glossar.php";
    if (
    $site == "mitgliedwerden"$ladeseite "mitgliedwerden.php";
    if (
    $site == "spielgegenuns"$ladeseite "spielgegenuns.php";
    if (
    $site == "links"$ladeseite "links.php";
    if (
    $site == "impressum"$ladeseite "impressum.php";
    if (
    $site == "gaestebuch"$ladeseite "gaestebuch.php";
    if (
    $site == "admin"$ladeseite "admin.php";
    if (
    $site == "report"$ladeseite "report.php";

    if (!
    $ladeseite) { echo "<div align=\"center\" valign=\"middle\">Zugriff verweigert!</div>"; } else {

    include(
    $ladeseite); }

    ?>
    Danke - Harakiri

    PS: Kann im PHP-Forum gelöscht werden... habe diese Rubrik zu spät entdeckt

  • #2
    Was spricht gegen folgendes Vorgehen??

    PHP-Code:
    if ( file_exists($file=(isset($_GET["site"]||$_GET["site"]!=""?$_GET["site"]:"news").".site.php") ) {
        include(
    $file);
    } else die(
    "<div align=\"center\" valign=\"middle\">Zugriff verweigert!</div>"); 
    Wichtig ist dabei das nur eine definierte Menge von Dateien eingefügt werden kann.
    Daher ".site.php" ... die Include-Files müssen dann natürlich den entsprechenden
    Namen haben. Die ".php" extention natürlich damit's durch den Parser läuft.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      1. Wollte ich eigentlich wissen, ob mein Script sicher ist

      2. Gehen bei deinem Script nur *.site.php Seiten? Kann die nicht theoretisch auch ein anderer auf seinen Server erstellen und bei mir includen? Bin gerade aufgestanden - stehe bestimmt nur aufm sprichwörtlichen Schlauch!

      MfG

      Kommentar


      • #4
        Ich hab's Dir nicht nur sicherer ... sondern auch kürzer gemacht ...

        Zu Punkt 2 ... ließ Dir mal die Doku zu http://www.php.net/manual/en/function.file-exists.php durch ... die Datei muß über das lokale Dateisystem erreichbar sein ...

        Wenn Du's noch dichter mache willst kannst Du ja noch str_replace(array("/","\\", ".."), array(""), $_GET["site"]) durchführen ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Re: Sicherheit meines INCLUDE-Scrips

          dein if-konstrukt im eingangsbeispiel ist ja ganz schöner code-wahnsinn.

          mach dich mal mit dem befehl switch vertraut:

          http://selfphp.info/funktionsreferen...men/switch.php
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            ich kenne die switch variante... finde IF aber besser und übersichtlicher!

            Kommentar


            • #7
              @ goth ..

              beim includen kann die datei heissen wie sie will, sie wird durch den parser gejagt ..

              ich verwende zb .class dateien
              ich weiß dass es kein java ist, und dass sich darin php klassen befinden *g*
              mfg,
              [color=#0080c0]Coragon[/color]

              Kommentar


              • #8
                Original geschrieben von Coragon Rivito
                beim includen kann die datei heissen wie sie will, sie wird durch den parser gejagt ..
                würde ich mal für glatt gelogen halten :-)


                Original geschrieben von harakiri
                ich kenne die switch variante... finde IF aber besser und übersichtlicher!
                viele ifs mit abfragen auf den inhalt der gleichen variablen sind aber unperformanter als ein switch.

                beim switch hast du einen vergleich, und danach wird dann verzweigt, während du bei deinem konstrukt jedesmal einen neuen vergleich machst.

                und noch dazu werden bei dir auf jeden fall alle vergleiche durchprobiert, da du ja noch nicht mal mit elseif arbeitest...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  @Coragon Rivito:
                  Klar ... nur wenn die Datei (wie im Beispiel) im Webverzeichnis liegt ... und jemand den originalnamen "blahbla.class" mitbekommt (bei freien Scripten) oder durch ausprobieren spitz kriegt .. dann kann er diese, soweit kein Webserver seitiger Schutz vorliegt, direkt im quellcode abrufen ... und das wäre unter Umständen gaaannz dumm ... !

                  Und meines erachtens ging's darum das include sicher zu machen ... da gehört sowas dazu!

                  @wahsaga: Doch ist so ... du kannst die Include-Datei auch "blablah.wurst" nennen ... wird auch included ... und geparsed!
                  carpe noctem

                  [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                  [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                  Kommentar


                  • #10
                    @ goth ..
                    dem jag ich einen 403 zum client
                    mfg,
                    [color=#0080c0]Coragon[/color]

                    Kommentar


                    • #11
                      Das macht aber nun mal nicht jeder ... und außerdem erfordert's Kenntnisse über Webserver-Konfiguration ...

                      Einfacher ist's im übrigen solche Files in ein Verzeichnis oberhalb des Webroot zu packen.
                      carpe noctem

                      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                      Kommentar


                      • #12
                        weiß ich

                        apropo oberhalb des webroots ..
                        php hat überall zugriff ..

                        wie kann ich verhindern dass andere user die am selben webserver liegen meinen code auslesen ?

                        ich meine ein echo implode("" file("xyz.php")) genügt allemal ..

                        schlieißlich hab ich auch schon mal die httpd.conf vom provider eingesehen, nur zum schaun wie der so konfiguriert is .. (hatte nix mutwillig böses im sinn !!)

                        EDIT:
                        diese frage wird in folgendem thread diskutiert: http://php-resource.de/forum/showthr...threadid=13297
                        Zuletzt geändert von Coragon Rivito; 20.11.2002, 13:14.
                        mfg,
                        [color=#0080c0]Coragon[/color]

                        Kommentar


                        • #13
                          dann werde ich mal auf goth's Variante umsteigen..

                          Danke!

                          Grüße - Harakiri

                          Kommentar

                          Lädt...
                          X