0

クリックすると、サーバー上で何らかの処理コードを起動する URL を Web ページに配置する必要がある場合があります。ランダムな悪者が独自の URL を作成したり、すべきでないことを行ったりするのを防ぎたいのは明らかです。そのため、他のサイトで見たものからリバース エンジニアリングされたこのスキームを使用しています。

  • 一意の文字列を作成します (私は MD5 を使用していますが、間違いなく他のオプションがあります)
  • この文字列を適切な名前のセッション変数に入れます
  • URLに文字列を含めます。おそらく次のようなものです/do_this/123/FABDYFYEYYDFBDHDFS
  • 処理コードが実行されたら、URL から文字列を抽出し、それをセッション変数の値と比較します。一致する場合は、安全に続行できます。そうでない場合は、別のことを行います。

これは、ユーザーのブラウザーのセッション ストレージが関連性のないセッション変数で散らばっている部分を除いて、私にとっては問題なく機能しています。やっていることを終えたら、セッション変数を削除できる (そして実際に削除できる) 場合もありますが、常にそうとは限りません。おそらく、古い変数をクリアする機会を見つけることについてもう少し賢くなることができますが、問題は十分に一般的であるため、これを行うためのより良い方法がある可能性があります (つまり、私が思いついたものは、任意の数に対して本当にばかげている可能性があります)思いつかなかった理由)。この種のことを行うための良い/より良い方法についてのアドバイスはありますか?

4

1 に答える 1

1

質問を誤解している可能性がありますが、一意の文字列をセッション変数/Cookieに保存する必要がある理由がまったくわかりません。次のようなことをしてみませんか:

  • <a>タグまたは任意の場所に秘密の文字列を含むページをレンダリングします。
  • サーバー側で「OK」として文字列を保存します。
  • 文字列を使用してイベントを発生させる場合は、無効にします。リンクがページのリロードを引き起こす場合、これは自動的に機能しますが、AJAX などでも実現できます。
于 2013-07-03T22:16:17.803 に答える