1

私のクライアントのサイトには、40 フィールドのフォームで構成される「オンライン評価」セクションがあります。各フィールドには、質問に応じて 50 から 200 文字を許可するプログラムがあるユーザー入力が必要です。

その後、フォームはクライアントのメールに送信されますが、データベースにも保存されるため、クライアントは後ですべてのフォームを確認できます。

私は codeigniter を使用しており、SQL インジェクションを防ぐためにアクティブ レコードを使用しました。また、別の質問に投稿された方法でスパムボットで検証しました。cssで非表示のフィールドを非表示にする必要があります。値が入力されているか一致しない場合、フォームは検証されません。(ちなみに、これで十分ですか、それともキャプチャを追加する必要がありますか?)。

コードは次のようなものです。

<p class="mail"><input type="text" name="mail" id="mail" /></p> //then I hyde this with css
<input type="hidden" name="mail" value="some value" />

そして、私はそれを検証します

if( $this->input->post('mail', true) != '' AND $this->input->post('mail', true) != 'some value') 
{
    die('could not send your request');
}
else
{
    process form
}

私の質問は、42 個のフィールドを追加してからデータベース テーブルを作成するときに、それが私の PC であるかどうかはわかりませんが、インターネット接続が本当に遅くなり、ほとんどクラッシュします。攻撃者がこのフォームに何度か入力を試み、各フィールドを完全に埋めようとすると、データベースが崩壊するのではないかと心配しています。これは可能ですか?

そのテーブルをおそらく 2 つまたは 3 つの異なるテーブルに分割する方が安全ですか? それともそれは無意味ですか?セキュリティのことはよくわからないので、学べる場所を探しているのですが、見つけた情報はどれもよくわからない専門用語だらけで、なかなか大変です。大変お世話になりました。

編集:それを行う正しい方法は何ですか?

4

2 に答える 2