Code sicher gegen XSS und SQL-Injektion

slaughter89

Mitglied
Hi,
ich habe eine Frage:

Ist dieser nachfolgende Code sicher gegen XSS und SQL-Injektionen?

PHP:
$id = stripinput($_GET['id']);

function stripinput($text) {
	if (ini_get('magic_quotes_gpc')) $text = stripslashes($text);
	$search = array("\"", "'", "\\", '\"', "\'", "<", ">", "&nbsp;");
	$replace = array("&quot;", "'", "\", "&quot;", "'", "&lt;", "&gt;", " ");
	$text = str_replace($search, $replace, $text);
	return $text;
}
 
Nimm doch lieber die von PHP mitgelieferten Funktionen.

[phpf]mysql_real_escape_string[/phpf]
Besonders Beispiel 1416 sollte dir einen guten Einblick verschaffen.

Und bei Zahlen [phpf]intval[/phpf].
 
Für MySQL das genannte mysql_real_escape_string() und für HTML reicht htmlspecialchars().
Wenn du den erwarteten Datentypen oder die Datendomäne weiter einschränken kannst, solltest du die Eingaben entsprechend validieren. Bei servererzeugten Werten, also bei Eingabewerten, die vom Server quasi vorgegeben werden (vorgegebene Werte der Optionen eines select-Auswahlmenüs, eines Checkbox- oder Radio-Elements), sollte anhand einer Positivliste verglichen und Abweichungen möglicherweise sogar protokolliert werden und in einer abschreckende Fehlermeldung resultieren.
 
Zurück