6

Exact Duplicate :サーバー側で複数の送信を処理する方法

当面の一般的なタスク: マルチユーザー Web ベース アプリケーションでの二重フォーム送信の防止。金融取引を考えてみてください。

タンデムで使用できる 2 つの方法があります。

  1. ボタンの JavaScript 無効化
    • 短所: JavaScript が無効になっていると機能しません
  2. バックエンド検証 - このタイプの最後のリクエストがこのユーザーから送信されたのがどれくらい前かを確認し、それほど前でない場合はエラーを発行します
    • 短所: 2 つの提出物が十分に接近している場合、それぞれが他方を認識できない可能性があります。

ベスト プラクティスや難解なトリックを提供してくれる専門家を探しています。任意の言語とフレームワークを使用できますが、特に興味深いのは Django です。当面のタスクについては Web 上で多くのことが書かれていますが、ここでベスト プラクティスが示されているとよいでしょう。

4

1 に答える 1

8

一般的な解決策は、フォームを生成するたびにサーバーでトークンを生成することです。トークンをサーバーに保存し、非表示フィールドとしてフォームに追加し、そのトークンでフォーム送信を取得したら削除します。

有効なトークンなしでフォーム送信を取得した場合、フォームは既に送信されており、無視されていることを意味します。

これには、プロジェクトに XSRF 保護を追加できるという利点があります。

于 2009-05-19T00:36:20.623 に答える