別のXSSフィルターではない

クロスサイトスクリプティングとは何ですか? ウィキペディアでそれについて読む:)



しかし、注意してください-ブラウザのせいです。 HTML5をサポートしているか、PNGの透明度をまだ理解していないかは関係ありません。 さて、クライアントは常に正しいので、 バザーコンテンツを適切にフィルタリングする方法を説明します。





XSSについて少し



XSSの哲学は、悪意のあるコードをページに挿入する規則に従ってテキストが使用されないことです。 彼らはどうあるべきか:



これはすべてメインからのもので、既存のタイプの攻撃の詳細についてはこちらをご覧ください。



どうすれば自分を守ることができますか?



ほとんどのXSS防止ソリューションは、潜在的に危険な構造の厳密なフィルタリングを使用します。

しかし、この例を見てみましょう:

< a href = http: // habrahabr . ru > javascript:alert("Hello"); </ a >





このコードの危険レベルはゼロです。 ただし、CodeIgniterは以下を返します(他のフレームワークではチェックしていませんが、コメントを読むと便利です)。

< a > [removed]alert("Hello"); </ a >





そのため、CodeIgniter銃からのスズメが殺されます。



より柔軟なフィルターがあります。



最近、 Platcodeフレームワークを開発しています。 しかし、ここではPRを思いつきませんでしたが、自分のXSSフィルターについて話をしました。



操作の原理は単純です-入力文字列をタグ/属性/値に解析し、フィルターを適用して危険なタグと属性値を削除します。 したがって、テキスト全体の過度のフィルタリングを省略し、タグ/属性を個別にターゲット変更します。 この場合、上記の例は元の外観を保持します。 そして、顧客は幸せになります。



フィルターの機能:



ただし、コードの文書化は非常に不十分ですが、機能は100%実行可能です。 プロジェクトへの参加やXSSフィルターのハッキングに興味がある人は、PMで書いてください。



UPD。



XSSフィルターのテストはい、habraffectホストでは機能しません:)



UPD2。



habrasocietyのおかげで、バグのトラップと修正は鼻孔から鼻孔になります。



ユーザーの尊重:insa、 isisrecompilemefloppyformator 、ICQ:32523553



All Articles