Was ist eine gute Methode, um das gesamte $ _POST-Array in PHP zu bereinigen?
Ich habe ein Formular mit einer Menge von Variablen, die dann senden Sie eine E-Mail, anstatt Hygienisierung jeder $_POST
Wert mit filter_var($_POST['var'], FILTER_SANITIZE_STRING);
ich war nach einer mehr einfache Stück code. Ich kam mit dem unten, das scheint zu funktionieren, wie ich glaube, die Standard-Aktion ist FILTER_SANITIZE_STRING
aber ich habe mich nur gefragt, was Völker Meinungen sind, und wenn dies ist keine gute Praxis, vielleicht könnten Sie mir sagen, warum? Die $_POST
Werte werden dann einzeln eingebettet in neue Variablen, so würde ich nur mit array_map nur am Anfang, um alles zu bereinigen...
$_POST = array_map('filter_var', $_POST);
Vielen Dank für Ihre Antworten, geben Sie ein wenig mehr Informationen, im Grunde:
Habe ich 20-30 input-Felder in einer form, die gefangen,
die Daten werden dann dem Benutzer angezeigt, um überprüfen Sie Ihre Eingabe
Variablen werden dann desinfiziert,
der Benutzer wird dann eine E-Mail geschickt
und dann schließlich die Angaben werden in eine db.
derzeit bin ich Hygienisierung unter Verwendung der oben array_map Funktion, sowie FILTER_SANITIZE_EMAIL auf die E-Mail-Adresse vor dem senden einer E-Mail und dann die Flucht der Eingabe mit mysql_real_escape_string() vor dem einfügen in die db. Ohne sich in prepared statements etc.. meinst du ich sollte irgendetwas zusätzlich? nochmals vielen Dank!
InformationsquelleAutor der Frage SirG | 2010-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Typ der einzelnen input-Variablen eine Zeichenfolge ist und Sie möchten, bereinigen Sie alle auf einmal, die Sie verwenden können:
Dies wird bereinigen Ihre $_GET und $_POST-arrays.
Hier gesehen: PHP -Desinfizieren die Werte von einem array
InformationsquelleAutor der Antwort johnny.rodgers
Hängt davon ab, was Ihr dafür verwendet.
Wenn Sie das einfügen in die Datenbank dann
mysql_real_escape_string()
für quoted strings und typecasting für zahlen, wäre der Weg zu gehen - auch ideal prepared statements, aber das ist eine ganz andere Sache.Wenn Sie planen, auf die Ausgabe der Daten auf die Webseite, dann würde ich empfehlen etwas wie
htmlspecialchars()
Wenn Sie plan über die Verwendung der Benutzer-Eingabe als shell-argument, dann würden Sie
escapeshellarg()
Bewegen auf Ihre Frage über das versenden von E-Mails. Gut, das folgende sollte genügen:
All dies tut, ist im Grunde strip tags und Kodieren Sie Sonderzeichen.
InformationsquelleAutor der Antwort Russell Dias
Gibt es keine richtige Weg, dies zu tun Decke Hygiene. Was Abwasserentsorgung Methode, die Sie benötigen, hängt davon ab, was getan wird, um die Daten.
Bereinigen Sie die Daten direkt, bevor es verwendet wird.
InformationsquelleAutor der Antwort Pekka 웃
Dies ist, was ich benutze in all meinen Projekten:
Es ermöglicht zu trimmen und bereinigen, einen verschachtelten array von geposteten Daten
InformationsquelleAutor der Antwort ymakux