OWASPのXSS防止に関するチートシートを読みましたが、これらのルールを使用したアプリケーションを実際には認識していません。これらのルールで指摘されている脆弱性はないと思います。
私は次のすべての原則に従うPHPアプリケーションを実行しています。
サーバー側で処理およびサニタイズされることなく、単一のユーザー入力がHTMLページに直接表示されることはありません
すべてのユーザー入力はでサニタイズされ
htmlentities()
ます。それで十分ですか?(SQLインジェクションにはプリペアドステートメントを使用します)一部のユーザー入力は、
maxlength
サーバー側で5文字の条件があります。それはXSSからの保護に役立ちますか?(XSSコードが6文字より短いことはほとんど見られないため)データベースからのデータとは別に、ユーザーに表示される唯一のユーザー入力は、ajaxを介してサーバーに送信され、(jQueryを使用して)代わりにを
htmlentities
使用してサニタイズされ、DOMに再導入されました。text()
html()
私の場合、XSSについて心配する必要がありますか?XSSから身を守るために他に何ができますか?