SQLインジェクションは、ほとんどの場合、プリペアドステートメントを使用することで簡単に回避できます。
ユーザーがHTMLマークアップを投稿できるようにすることを計画している場合、XSSはより困難です。すべての<script>
を削除する必要があります タグ、すべてon*
タグの属性、すべてのjavascript:
urls、そしてそれでも、入力HTMLを安全にすることはおそらく完全には保証されていません。 HTMLPurifier
などのライブラリがあります これは役に立ちますが、HTMLを許可している限り、悪意のあるものを通過させるリスクがあります。
代わりに、マークダウンやウィキテキストなどを実装するライブラリを使用できます。これにより、ユーザーが入力できる内容が大幅に制限されますが、コンテンツにある程度のマークを付けることができます。それは完全な証拠ではありません(人々は悪意のあるサイトへのリンクを投稿し、ユーザーがそれらにクリックスルーすることを期待できますが、実際にそうするのに十分な素朴なものもあります)、そしてあなたは何らかの種類なしでTinyMCEのようなリッチエディタを使用することはできませんプラグインのですが、HTMLをサニタイズするよりも、マークダウンをサニタイズする方がはるかに簡単です。