2011-08-07 8 views
2

フォームにトークンを追加して、より安全なフォームを提出することを推奨しているソースがたくさんあります。フォーム内のセキュリティトークン

私は、フォーラム内のすべてのフォームにトークンを追加し、今私は、次のような問題があります。

一部のユーザーは、さまざまなフォーラムのスレッドで複数のブラウザタブを開きます。返信フォームは各スレッドの下にあります。したがって、あるスレッドで1つのブラウザタブを開き、別のスレッドで別のタブを開いた場合、最初のフォームのトークンはもう有効ではなくなり、最初のフォームを送信しようとするとエラーになります。そのような状況の解決策はcaptchaですが、私はすべてのことをユーザーにとって非常に複雑にしたくありません。

セキュリティをフォームに追加する方法を他の方法で提案できますか?

ありがとうございました。

+0

このトークンは何のために使用しますか?あなたはそれをより安全にするつもりですか? CSRF?リプレイ攻撃? – Gumbo

答えて

2

新しいタブを開くときにトークンが無効になるのはなぜですか?トークンがセッションまたはログインしているユーザーに知られている秘密から生成されている限り、新しいスレッドを開くときにトークンを無効にする必要はありません。

はここでこれを行うための一つの方法です:

  1. ユーザーがログインすると、セッションのみに保存されている秘密を作成します。
  2. スレッドのフォームでは、セッションシークレット、問題のフォーラムスレッド、および状況に価値のあるその他の情報から構成されたハッシュを作成します。
  3. ユーザーがフォームを送信するときは、上記と同じ情報からハッシュを作成し、フォームに送信されたものと一致するかどうかを確認します。

セッションを安全に保つための通常の対策(タイムアウト、ログイン時にリセットなど)に加えて、これはユーザーに不便を与えずにフォームをかなり安全に保つはずです。

+0

できれば+1します。 – Ariel

関連する問題