「十分な消毒」は、あなたが話している環境に完全に依存します。 MySQLのサニタイズは、完全に分離されていると見なす必要があります。 Web出力のサニタイズから、多くの面倒を避けるためにそれらを別々に処理する必要があります。
MySQLのサニタイズ
-
mysql_real_escape_string()
データの一部をサニタイズし、SQLクエリ内に安全に配置できるようにします。 - 文字列内のHTMLタグなど、その他の種類の悪意のあるデータは完全に無視する必要があります。ここで操作しようとすると、後でデータベースから取り出した後で「操作を解除」しようとすると、頭痛の種になります。悪い「ウェブデータ」はデータベースに害を及ぼすことはありません。
出力のサニタイズ
-
htmlspecialchars($ val)
<
であるため、出力時に悪意のあるタグがレンダリングされるのを防ぎます。 および>
文字はエンティティ表現に変換され、タグ区切り文字としてレンダリングされません。 -
ENT_QUOTES
を使用します
特別な要件がない限り、必要なのはそれだけです。 strip_tags()
不正な形式のHTMLにだまされる可能性があるため、実際にはサニタイズに使用しないでください。サニタイズは価値のある目標であり、コンテキストを分離しておくことができれば、コンテキスト間のデータ操作に関する問題が少なくなります。