2009-12-11 10 views
6

私はPHP関数htmlentities()をXSS攻撃やhtmlspecialcharsなどの関連する関数に対して使用することのセキュリティについて尋ねていました。あなたが明示的に適切なエンコード(例えば:UTF-8)を指定する必要がありますhtmlentities()は弾丸ですか?

おかげでたくさん:)

答えて

8

は、クリスも、適切なエンコードせずにhtmlentitiesを呼び出すコードを挿入する方法についての記事がありました。

http://shiflett.org/blog/2005/dec/google-xss-example

+0

ありがとうございました。これはまさに私が探していた証拠のようなものです。私はエンコードの問題を勉強しなければなりません。それについての良い文書がありますか? – fatmatto

+1

Gmailの連絡先xssの実例を読むことをお勧めします。また、下記の記事でダウンロード可能なエクスプロイトを読むことで、安全なコードを書く方法のアイデアが得られます。 http://uneasysilence.com/アーカイブ/ 2007/01/9025/ 便利なチートシートがあります: http://openmya.hacker.jp/hasegawa/security/utf7cs.html –

+0

非常にありがとうございます:D – fatmatto

4

それはあなたに100%を節約することはありません、防弾ではありません。セキュリティに関しては、開発者が責任を負うことを忘れないでください。言語は多くのセキュリティ機能を提供しますが、ホワイトリストアプローチやブラックリストアプローチを使用するかどうかは、開発者自身がサイトをどのように保護するかにかかっています。 htmlentitiesがすべての場合、codeigniter、kohanaなどのフレームワークは、独自の優れたセキュリティ機能を提供していないでしょう。

最も重要なことは、ユーザーからの入力をサニタイズしてフィルタリングすることです。

0

いいえ、htmlspecialcharsおよびhtmlentitiesのような機能は、すべてのクロスサイトスクリプティングの防御にはなりません。これらの機能は助けにはなりませんした

事例は以下のとおりです。

特に、後者の理由がしばしば見逃されます。 OWASP’s XSS Prevention Cheat Sheetには、HTML文書で注入が行われる例がたくさんあります。しかし、JavaScriptコードを挿入して実行するためにHTMLの特殊文字を必要とするわけではありません。

関連する問題