Variablen, die über Webformulare übermittelt werden, müssen immer bereinigt/sanitisiert werden, bevor sie in irgendeiner Weise verwendet werden, um böswillige Absichten aller Art zu verhindern.
Technik #1
function clean($value) {
// If magic quotes not turned on add slashes.
if(!get_magic_quotes_gpc())
// Adds the slashes.
{ $value = addslashes($value); }
// Strip any tags from the value.
$value = strip_tags($value);
// Return the value out of the function.
return $value;
}
$sample = "<a href='#'>test</a>";
$sample = clean($sample);
echo $sample;
Das ist ein guter Anfang, aber er ist bei weitem nicht so effizient, wie er im heutigen PHP-Gebrauch sein muss.
Schauen Sie sich htmlspecialchars() und/oder htmlentities(), stripslashes() und (für Datenbankbenutzer) mysqli_real_escape_string() an
Beispielverwendung
Ich würde dies nur bei der Ausgabe empfehlen.
Wenn Sie Daten in eine Datenbank übermitteln (z. B. einen Kommentar posten), dann escapen Sie Ihre Daten!!
Natürlich würde ich PDO gegenüber mysqli_*()-Funktionen befürworten, da diese automatisch escapen (mangels besserer Beschreibung)
Gibt es Lösungen für die heutige PHP-Version?
danke