MySQL データベースの「tinytext」フィールドに格納されるユーザー入力フィールドがあります。かなり標準的なもの。php 関数を使用して html の特殊文字をエスケープする際に、従うべき標準またはベストプラクティスがあるかどうか疑問に思っていますhtmlentities()
。
データをデータベースに保存する前に使用htmlentities()
する必要がありますか?それとも、データが Web サイトから出力されるたびに関数を実行する必要がありますか?
MySQL データベースの「tinytext」フィールドに格納されるユーザー入力フィールドがあります。かなり標準的なもの。php 関数を使用して html の特殊文字をエスケープする際に、従うべき標準またはベストプラクティスがあるかどうか疑問に思っていますhtmlentities()
。
データをデータベースに保存する前に使用htmlentities()
する必要がありますか?それとも、データが Web サイトから出力されるたびに関数を実行する必要がありますか?
通常、これ以上使用する理由はまったくありませんhtmlentities()
。すべてを UTF-8 フィールドに保存し、最後までUTF-8に準拠します。
安全でないユーザー入力を HTML として出力する場合はhtmlspecialchars()
、理想的には出力時に を使用して、元のデータのコピーを作成します。