Ankündigung

Einklappen
Keine Ankündigung bisher.

variable externe Seite sicher einbinden

Einklappen

Neue Werbung 2019

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

  • variable externe Seite sicher einbinden

    Mein Script durchsucht eine externe Datei auf bestimmte Wörter und färbt diese ein. Jedoch kann man beliebige Datein einbinden, was die Sache ziemlich unsicher macht.

    PHP-Code:
    $suche $_GET['hl'];
    $suche htmlspecialchars($suche);
    $suchePR ="\"".$suche."\"";
    $sucheErgebniss "<span style=\"background-color:red\">".$suche."</span>";

    $url$_GET['url'];
    $zeile file($url);

    foreach (
    $zeile as $line)     {
                                                              
    $line preg_replace($suchePR,$sucheErgebniss,$line);
    echo 
    $line;

    Es werden immer nur externe Seiten ausgelesen, auf was muss ich achten, um Sicherheit gewährleisten zu können? Reicht es, den eigenen Server auszuschließen/backlisten, oder kann dann dennoch sowas wie eine php Shell eingebunden werden?

  • #2
    auf was muss ich achten, um Sicherheit gewährleisten zu können?
    SO ein Script nicht nutzen.

    Kommentar


    • #3
      Wow, was für eine hilfreiche Antwort

      Alternativen zu meinem Vorgehen?
      Evtl. doch Wege, den Script sicher zu machen?

      Kommentar


      • #4
        Sorry, aber Du wirfst hier Code rein mit kaum verständlichen Sätzen und ohne Beschreibung des Hintergrunds. Was soll man da antworten?

        Kommentar


        • #5
          Die Kernfrage ist was du an Inhalten erlauben willst. Wenn du JS erhalten musst, dann sieht's schlecht aus für die Sicherheit. Erste Stufe wäre also alles was irgendwie nach JS aussieht zu filtern. Am Besten auch direkt noch alles was embedded ist rausfiltern. Und das mit den Links ist auch so eine Sache. Oh und Image-Tags dürfen NUR Bilder einbinden.

          Kommentar


          • #6
            Ich empfehle dir zu aller erst den Abschnitt:
            Code:
            $zeile = file($url); 
            
            foreach ($zeile as $line)     { 
                                                                       
            $line = preg_replace($suchePR,$sucheErgebniss,$line); 
            echo $line; 
            }
            mit diesen zu ersetzen
            PHP-Code:
            $string file_get_contents($url);
            str_ireplace($suchePR,$sucheErgebniss,$string); 
            Gebe nikosch recht - es ist immer kritisch unbekannten Fremdcode zu importieren.

            Du musst prüfen ob die Url auch wirklich eine (X)HTML-Website ist, könnte ja auch sein, dass ein anderes Dateiformat übermittelt wird - was im besten Fall nur einen Fehler ausspuckt und im schlimmsten Fall deinen Server lahm legt(z.B. Dateigröße).

            Aus Sicherheitsgründen würde ich jegliche Art von JavaScript entfernen.
            Des Weiteren solltest du mit strip_tags() und weiteren Filtern unerwünschten Code entfernen.

            Dieser Ansatz birgt viele Risiken und muss auch aus rechtlichen Gründen gut überdacht werden. Was ist wenn jemand eine nicht-gesetzeskonforme Site einlädt???

            Kommentar

            Lädt...
            X