Sicherheitsrisiko beim Nutzen von file_get_contents() ?

  • Hallo,

    ich wollte mal schnell in den Raum fragen: Ich nutze zum ersten Mal file_get_contents() und möchte wissen, ob es dabei für meinen Server ein potenzielles Sicherheitsrisiko (Injections, XSS, etc...) gibt - die Sache ist die, dass in weiterer Folge die Benutzer der Seite die aufzurufende Adresse selber wählen können (ist so eine Art Preview für andere Websites) -> Script Tags Streiche ich natürlich raus...

    Weiß da jemand bescheid ?

    Lg

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Soweit ich weiss, kann file_get_contents() auch auf http:// adressen zugreiffen. Demnach hast du natprlich XSS gefahr. Aber solange du den rückgabewert der funktion nicht gerade ausführst oder in einen DB-Query einbaust, sollte das für deinen Server sicher sein.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Eigentlich sollte doch aber die Gefahr von XSS nicht gegeben sein, wenn ich per REGEX alle Scripts herausstreiche, bevor ich das ganze darstelle ?

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Wieso vermeiden? O.o

    Frames sind nicht die Wurzel alles Bösen.
    Frames sind GENAU dafür da! Das hier ist die einzige Existenzberechtigung für Frames.

    Websites laden und in deinen eigenen Quellcode einfügen geht stark in Zueigen machen, fremden Eiegntums. Ich würde es nicht wollen, dass mein Quellcode in fremden Seiten dargestellt wird. Frame ja, aber reinladen, nein. Da bestehen zu viele Veränderungsmöglichkeiten.

    Ein weiterer Pluspunkt für Frames in diesem Zusammenhang: Ein wichtiges Gütekriterium einer jeden Anwendung ist die Einfachheit und Flexibilität des Codes - und das ist mit Frames jedenfalls gegeben.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Doch, leider gibts da extrem viele XSS-Möglichkeiten.
    z.B.

    HTML
    <!-- http://www.meinspace.bla/böse.php -->
    <a href="#" onmouseover="stielAlleCookies();sendeSiePerAjaxZurück();">klick mich!</a>


    Und kabuum, ich hab alle cookies vom user und kann mich evtl. einloggen. Und durch das entfernen von onmouseover/onclick-events beeinträchtigst du möglicherweise die funktionalität. Sicherheitslücke gegen den Benutzer.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Nachtrag: Frames beseitigen alle Sicherheitslücken, weil die eingebundene Seite nicht auf Seiten mit fremder Domain zugreifen kann.

    Something big is coming. And there will be pirates and ninjas and unicorns...