不正値投入の対策

攻撃者がアプリケーションを破壊するために、性別の規定外を混入させる手口は、大きく分けて以下の手順で行われます。

まず、正規画面のHTMLを解析し、フォームのactionと送信データを解析します。
次に、正規画面と同じPOST値を持ったHTMLをローカル上に作成します。
そして、action先をフルURLに書き換え、作成したHTMLをローカル上で表示させ、送信ボタンを押すことで実行されます。

この手順で、攻撃者はどんな値も送信できるようになってしまいます。
簡単に値が書き換えられるのはラジオボタンだけではなく、セレクトボックスやチェックボックスの場合も同様です。
このように、あまりにも簡単に規定値以外の値がPOSTされてしまうことに対して、サーバ側のプログラムにて対策を行う必要があります。

ローカル上にダウンロードされた HTMLは誰にでも容易に改ざんできてしまい、アプリケションへのデータ不正投入を防ぐことはできません。JavaScript もローカル上ヘダウンロードされるので、同様の結果です。
正しいデータであれ、不正なデータであれ、入力されたデータは最終的にファイルやデータベースに保存されます。
データの不整合を起こさせないためには、送信されたデータが保存される前に正しいデータかどうかを判別してから保存しなくてはいけません。
不正投入の対策を施すタイミングとしては、データが保存される直前の PHPスクリプト内で行う必要があります。
そこでは入力された値が、意図する範囲内の様式であるかどうかをチェ ックするようにします。
Webアプリケーション開発者は、開発者の意図に反したデータを送信されることを常に想定しながら、入力値をひとつずつチェックするスクリプトを記述します。

このように、不正値投入対策をすることで、サイトの安全性を確保することが必要ですので覚えておきましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です