Reicht Markdown (mit strip_tags) aus, um XSS-Angriffe zu stoppen?
Ich arbeite an einer Webanwendung, mit der Benutzer kurze Beschreibungen von Elementen in einem Katalog eingeben können. Ich erlaube Markdown in meinen Textbereichen, damit Benutzer HTML-Formatierungen vornehmen können.
Meine Textbereinigungsfunktion entfernt alle Tags von jedem eingegebenen Text, bevor er in die Datenbank eingefügt wird:
public function sanitizeText($string, $allowedTags = "") {
$string = strip_tags($string, $allowedTags);
if(get_magic_quotes_gpc()) {
return mysql_real_escape_string(stripslashes($string));
} else {
return mysql_real_escape_string($string);
}
}
Im Wesentlichen speichere ich in der Datenbank nur Markdown - kein anderes HTML, auch kein "grundlegendes HTML" (wie hier bei SO) ist zulässig.
Wird das Zulassen von Abschriften Sicherheitsrisiken bergen? Kann Markdown XSSed sein, obwohl es keine Tags hat?