データベースにプッシュする前に、required と max_length に対して通常のフォーム検証を行い、明らかに xss フィルタリングを行う必要があります。htmlspecialchars は、タグに含まれていない文字にのみ適用する必要があるため、htmlspecialchars を直接実行することはできません。必要がある:
<br/>
1 - " " や " "<b>
などのタグ要素を削除 (および保存) します。おそらくpreg_matchでこれを行うことができます。<b>
</b>
2 - 残りのすべてのテキストに対して htmlentities を実行します
3 - 不要な明示的なタグをすべて削除します (保存されているタグの束から)
strip_tags ( string $str [, string $allowable_tags ] )
4 - 次に、属性とコンテンツの許可されたタグをフィルタリングします。ハッカーが次のようなコードを使用することは珍しくありません
<b onMouseOver="window.open(..)"></b>
これを修正するには、少し余分な作業を行うか、おそらくいくつかの正規表現を使用する必要があります。もっとサンプル コードを書いてほしい場合は、お知らせください。
6 - タグ要素をドキュメントに再度追加します。
私は基本的に今これを調理しました。アルゴリズムの効率を改善することはできます (つまり、最初に不要なタグを削除してから、html エンティティとタグ コンテンツのフィルタリングに進みます) が、それはあなたに任せます。
これは、現在潜在的なハッキングを見ることができる限りです. ただし、入力をハッキングする方法は他にもあるかもしれないので、phpbb フォーラム システムなど、他のコメント ボックス システムが検証に使用するものを確認することをお勧めします。別のオプションとして、phpbb 角括弧形式を使用してタグを処理し、ユーザーが html タグをまったく入力できないようにすることもできますが、代わりに、制御する角括弧タグを使用します。
これはあなたの質問に答えていますか?