<textarea>
値がサーバーに送信され、データベースに保存されます。この値は、後で HTML のさまざまなページにレンダリングされます。
これを消毒するにはどうすればいいですか?HTMLタグを削除するだけですか?(ストアド プロシージャとパラメーターを使用しているため、既に SQL インジェクションに対して安全です。)
誰かが消毒ルーチンを持っていますか?
<textarea>
値がサーバーに送信され、データベースに保存されます。この値は、後で HTML のさまざまなページにレンダリングされます。
これを消毒するにはどうすればいいですか?HTMLタグを削除するだけですか?(ストアド プロシージャとパラメーターを使用しているため、既に SQL インジェクションに対して安全です。)
誰かが消毒ルーチンを持っていますか?
入力をサニタイズしません。代わりに、出力時にエンコードします。これは、.net 4 の機能 (<%: "" %>) を使用するか、コードをレビューすることで簡単に実施できます。
データはネイティブ形式で保存する必要があります。人間が読めるテキストのネイティブ形式はテキストのみであり、エンコードされたバージョンではありません。エンコードされたテキストを簡単に操作することはできません (単語の強調表示や置換など)。
データベース内のテキストをエンコードしないことで、ストレージ スペースを少しでも節約できます。
とにかく、入力のサニタイズは難しいです。すべてをエンコードするだけでなく、それ以上のことを行うのは非常に困難です。HTML タグをブラックリストに登録することは、何かを忘れる特定の方法であるため、実行しないでください。
タグを完全に削除するか、 や などの特殊文字<
を>
HTML エンティティ ( <
) に置き換えます。使用しているサーバー側の言語には、おそらくこれを行う機能が既に備わっています。たとえば、 PHPのhtmlspecialchars
またはstrip_tags
がそのトリックを行います。