私は、ユーザーがカタログ内のアイテムの簡単な説明を入力できるWebアプリケーションに取り組んでいます。テキストエリアでMarkdownを許可しているので、ユーザーはHTML形式を使用できます。
私のテキストサニタイズ機能は、データベースに挿入する前に、入力されたテキストからすべてのタグを取り除きます。
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);
}
}
基本的に、データベースに保存しているのはMarkdownだけです。他のHTMLは使用できず、「基本的なHTML」(ここではSOのように)も許可されていません。
マークダウンを許可すると、セキュリティ上の脅威が発生しますか?タグがない場合でも、マークダウンをXSSすることはできますか?