Ankündigung

Einklappen
Keine Ankündigung bisher.

Formulardaten (Codes) unschädlich machen

Einklappen

Neue Werbung 2019

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

  • Paeisi
    hat ein Thema erstellt Formulardaten (Codes) unschädlich machen.

    Formulardaten (Codes) unschädlich machen

    Hi,

    suche die php-Funktion, die übergebene Formulardaten auf HTML-/PHP-Code/SQL-Kommandos überprüft und unschädlich macht.

    Habe mich schon totgegoogelt, aber nix gefunden...

    LG

  • tkausl
    antwortet
    Ich würde in deinem fall für jede eingabe gesondert unterscheiden. ist es ein name prüfe mit nem RegExp einfach und verbiete bestimmte Sonderzeichen. Am ende noch ein Mysql_real_escape_string und dann bist du sicher.

    Einen Kommentar schreiben:


  • fireweasel
    antwortet
    Zitat von Tiberius Beitrag anzeigen
    Für eingehende Daten bietet sich die Filter Extension an
    Zur Eingabedatenvalidierung ist die bedingt geeignet (wenn sie denn irgendwann mal fehlerfrei ist). Aber SQL-Injections kann man damit nicht verhindern.

    Einen Kommentar schreiben:


  • Tiberius
    antwortet
    Für eingehende Daten bietet sich die Filter Extension an

    Einen Kommentar schreiben:


  • fireweasel
    antwortet
    Zitat von Paeisi Beitrag anzeigen
    ... suche die php-Funktion, die übergebene Formulardaten auf HTML-/PHP-Code/SQL-Kommandos überprüft und unschädlich macht.

    Habe mich schon totgegoogelt, aber nix gefunden...
    Das liegt daran, dass es eine solche Funktion nicht gibt.

    Wenn dein PHP-Script Formulareingaben entgegennimmt, sind das erstmal ganz harmlose Zeichenketten (Strings). Die tun niemandem weh. Erst wenn du sie an Funktionen übergibst, die diese Zeichenketten interpretieren, wird es problematisch. Also musst du Vorsichtsmaßnahmen ergreifen. Die üblichen sind (wie auch schon zum Teil erwähnt wurde):

    Für alle HTML-Ausgaben im Webbrowser htmlspecialchars().
    Die Betonung liegt auf "alle", denn die Zeichen in den Attribut-Angaben der HTML-Tags werden gerne vergessen.

    Für URLs urlencode() oder rawurlencode().

    Für (das allseits beliebte) MySQL in der 08/15-Version mysql_real_escape_string().

    Für Datenbank-Anfragen per PDO benutzt man am bestenprepared Statements, da kümmert sich PDO selbst um das richtige "escaping".

    Für PHP-Code gibts keine spezielle Funktion. Aber da man diesen eh nur per eval() ausführen kann, wenn er als Zeichenkette vorliegt, und eval() im Allgemeinen für gefährlich gehalten wird, verzichtest du einfach auf die Benutzung von eval().

    Für viele andere Anwendungen muss man sich eine eigene Escaping-Funktion schnitzen. Das erfordert erstens Wissen über die erlaubten und nicht erlaubten Zeichen für die jeweilige Anwendung und zweitens String-Replace-Funktionen wie preg_replace(), strtr() oder str_replace().

    Nicht geeignet für diese Zwecke sind übrigens stripslashes() und strip_tags(). Wer dir die empfiehlt, weiß meistens nicht, was er|sie tut.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Und prüfen und escapen sind auch noch zwei paar Schuhe.

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    Fuer HTML benutzt du htmlspecialchars(), fuer SQL mysql_real_escape_string(). Fuer alles zusammen gibt es nichts wirkungsvolles.

    Einen Kommentar schreiben:

Lädt...
X