サニタイズは、あらゆる種類のフィルターを通して入力を実行するだけではありません。
入力のサニタイズとは、不要なユーザー データでアプリケーションを汚染しないことです。
しかし、大きな問題は、あなたが望まないものは何ですか?
最初の例
これで、ユーザーがテキスト メッセージを送信できるページが作成されました。想定される入力は、電話番号とテキスト メッセージです。マニュアルのルール リファレンス
を見ると、おそらく次のルールを使用するでしょう。
numeric|exact_length[8]
これらのルールは、入力が数値であり、入力が私の地域の電話番号の長さと一致することを確認したいためです。入力が数値であることは既に検証済みなので、XSS および SQL インジェクションの試行は失敗すると想定できます (これらの攻撃には数値以外の文字が含まれているため)。
テキスト メッセージ フィールドにはtrim|required
、空のメッセージを送信したくないので、trim と required: を使用します。
2 番目の例
ユーザーにコメントを許可することは、ユーザーがサイトにスパムを送信したり、悪意のあるコードを挿入したりすることを許可する良い方法です。
基本的に、名前、メール、コメントは必要ありません。
すべての入力が必要です。電子メールは検証する必要があります。ただし、コメントと名前では、XSS とオーバーヘッドのスペース/改行をいくらか整理する必要があります。
サニタジオンによる私の検証は次のようになります。
$this->form_validation->set_rules('name', 'Name', 'required|trim|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email');
$this->form_validation->set_rules('comment', 'Comment', 'required|trim|xss_clean');
できるものではなく、必要なものをサニタイズし、必要なもののためにサニタジトンを行います。
バックエンドにデータを挿入するときは、Active Record/Query Builderを使用して入力を正しくエスケープするか、同じことを行うクエリ バインディングを使用していることを確認してください。