Ankündigung

Einklappen
Keine Ankündigung bisher.

"echo <<<END" - Manipultionsmöglichkeiten?

Einklappen

Neue Werbung 2019

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

  • "echo <<<END" - Manipultionsmöglichkeiten?

    Hallo,

    für ein kleines Webprojekt müsste ich den Inhalt einer Datei einlesen und als php-Syntax in eine neue Datei ausgeben (ja, ich weiß ).

    Natürlich würde dadurch eine enorme Angriffsfläche für das Script entstehen, aber für meine Zwecke wäre es die universellste Lösung.

    Nun bin ich auf die Möglichkeit gestoßen, lange Texte mit "echo <<<END" auszugeben.
    (siehe http://php.net/manual/de/function.echo.php)

    Während bei der normalen echo-Anwendung bösartiger Code ja problemlos mit "echo-Befehl beenden und bösartigen Code anfügen" eingeschleust werden kann, sollte das ja mit der "<<<END"-Variante nur per "END;" + bösartiger Code funktionieren, oder sehe ich das falsch?

    Ergo:
    Wenn bei o.g. Vorhaben (mal abgesehen davon, ob es so überhaupt sinnvoll wäre ) der String nach "END;" durchsucht und gegebenfalls ersetzt wird (z.B. durch "END; " <--- Leerzeichen am Ende), müsste diese Variante doch dann ziemlich abgesichert sein, oder?


    ... oder habe ich dabei irgendwas völlig übersehen und muss mir doch eine andere Variante überlegen?


  • #2
    Heredoc-Strings (<<<END) Verhalten sich wie Strings mit doppelten Anführungszeichen. Darin werden also Variablen geparst und dergleichen. Nowdoc-Strings (<<<'END') verhalten sich wie Strings in einfachen Anführungszeichen.

    - http://php.net/manual/en/language.types.string.php

    Mit Nowdoc-Strings solltest du das machen können, was du beschreibst. (Wobei ich den Sinn oder die Zusammenhänge nicht so recht verstanden habe.)

    Du könntest den Code auch in Base64 kodieren oder in "\x"-Sequenzen umwandeln. Das wäre dann wohl in jedem Fall sicher.

    Kommentar

    Lädt...
    X