0

ユーザーのランダム トークンを生成したいと考えています。MyController#newUX の理由から、ビューに表示するためにこのトークンを生成したいと考えていnewます。create次に、それをメソッドに渡す必要があります。ただし、ユーザーが変更できないようにしたい。

私はそれを行う3つの方法を知っています:

  1. 隠しフィールドとして渡す
  2. セッションを介して渡す
  3. それをデータベースに書き込み、未完了としてマークしてから、完了に設定しますcreate method

最初の 2 つのアプローチは安全ではありませんが、最後のアプローチはやり過ぎです。

コントローラーのメソッドにパラメーターnewを安全に渡す方法はありますか?create

4

1 に答える 1

2

Rails および # 以降のセッションはハッシュ化されているため、非常に安全です。公式ライブラリによると、セッション ハッシュが侵害されたという実質的な証拠はないため、ユーザーはそのトークンをブラウザーから削除することしかできず、論理的に正しい値に変更することはできません。

あなたができることは、セッションに値を保存し、そのトークンから自分でハッシュ値を作成し、それをセッションにも保存してから、受信側でセッションからハッシュを再生成して値を検証することです。

一致する両方のセッション値を編集できるユーザーはいません。一致しない場合は、値を破棄してエラー ページにスローできます。

誤解がある場合は、ご回答いただければ幸いです。

于 2013-08-16T09:54:14.037 に答える