2012-01-16 8 views
1

私は文字列を持っています。これは、一部のhtmlタグの属性の値です。

この文字列にjavascriptが含まれているかどうかを確認するにはどうすればよいですか?例えば

(IMGタグのSRC属性):
クロスサイトスクリプティング:文字列をチェックする方法

1. <IMG src="javascript:alert('XSS')"> - contains script<br/> 
2. <IMG src="JaVaScRiPt:alert('XSS')"> - contains script<br/> 
3. <IMG &#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;> - also contains javascript 

答えて

0

あなたが最初にチェックし、正規化する必要があります。しかし、私はHtmlPurifierやOWASP AntiSamyを見ています。

0

でJavaScriptをこっそりする奇数とトリッキーな方法のたくさんがあるように、それは、行うのはかなり難しい。

HTMLPurifierあなたがHTMLの入力を許可しなければならない場合、すべての潜在的に危険なHTMLをフィルタリングするためにかなり複雑な解析を持っています最初の場所。

しかし、一般的には、それを実行しようとすべきではなく、単にという文字列を常にからエスケープしてください。あなたが安全にDOM(これらの2つの方法はエスケープする必要はありません)にテキストを挿入するdocument.createTextNode()やjQueryの同等$(el).text()を使用することができますJSで

echo htmlspecialchars($string); 

:あるPHPで

関連する問題