どのように私はここでStackoverflowのようなサーバー側の投票ボタンを保護しますか?私はどのようにボタンを提出することができましたin this answerしかし、どのようにサーバー側で、どのように私はcsrf攻撃などから投票システムを守るのですか?stackoverflowのような投票ボタンを保護する
答えて
ボットは一般的にjavascriptを実行しないため、AJAX呼び出しの場合はサーバー側でチェックしてください。
あなたはより多くのparamを追加多分保護されるようにしたい場合は、同じカルク
私はその後、一緒に提出することに固有のID(@dotancohen)が含まれ、私はそれがAjax呼び出したことを確認し、このいずれかに行こうと思わせますそれ。私はそれがどのように動作するか完全に理解した後、私は「ノンス」を試みます。あなたの答えとアイデアに感謝します! – Michelle
と一致するかどうサーバー上でチェックし、現在の時刻に基づいて、いくつかのcalcではJavaScriptによって自動的に生成された最も簡単で効果的な方法がありますおそらくサインアップするために投票したいすべてのユーザーを必要とするため、各投稿に投票している人を追跡することができます。すべての有権者が誰であるかを知るとすぐに、投票ごとにユーザーIDを保存すると、以前に特定の質問に投票していないことを簡単に検証できます。
もちろん、登録フォームを保護して、ボットが登録できないようにする必要がありますが、これはreCAPTCHAと他の同様の方法を使用して行うことができます。おそらく、ユーザーが複数のアカウントに登録することを制限しようとするでしょう。それはもちろん難しいことですが、少なくともアカウントごとに一意の電子メールアドレスを要求するか、Google、Facebookなどの第三者認証を使用することができます。
サインを必要としない場合あなたは、すべての投票のIPアドレスを登録することに後退しなければならないと思いますが、その道を辿るのは手間がかかります。ボットは多分IPアドレスの全範囲を使用するでしょうし、あなたは同じIPを共有している異なるユーザーからの投票をブロックするかもしれません。これは本当に面倒です。
ログインを要求し、それにopenidを使用することもできます。
各矢印リンクのGETクエリ部分に一意のIDを入れます。このようにして、攻撃者/スパイファーはCSRF攻撃の方向を知ることができません。
CSRFから保護するために広く受け入れられている方法は、ノンスを使用することです。ボタンがクリックされ、リクエストがAJAXまたはPOSTデータを介して送信されると、それに伴ってナンス値が渡されます。そのノンスはバックエンドで検証されます。そのノンス値が生成時にセッションに保存されるようにすることができます。ハッシュ/ソルトを使用して、ノンスが特定のアクション、つまり「投票アップ」、「投票ダウン」などに限定されるようにすることができます。
認証がCSRFを必ずしも妨げるわけではないというログインテクニックを示唆しているすべての答えをleuで指摘したいと思います。 –
- 1. 投票機能付きギャラリーを保護する方法
- 2. diggのような投稿に投票を追加するプラグイン
- 3. (StackOverflowのような)MySQLデータベースに投票データを格納する最も効率的な方法
- 4. 投票 - 投票数と投票パーセントか?
- 5. ruby on railでstackoverflowのような投票ボタンを作成するにはどうすればよいですか?
- 6. すべてのワークシートをパスワードで保護するボタンと保護しないボタン
- 7. PHP投票システムチェック投票
- 8. pHpを使用しないjQuery投票投票プラグインですか?
- 9. 投票時間の投票システム
- 10. AppleScriptで投票投票を行う方法
- 11. "thumbs_up"で機能しないように投票する
- 12. パスワードアプリケーションの保護ボタン
- 13. デバイス/ブラウザごとに投票ボタン数を1票にする方法は?
- 14. 壁への投票を投稿する
- 15. アンドロイドの投票アプリでラジオボタンの応答を保存して投票を計算する方法
- 16. ユーザーが投票に投票したことを確認するにはどうすればよいですか?
- 17. 投稿フォームを保護する方法
- 18. のRails:投票
- 19. Wordpress Diggのような投票システムのプラグイン
- 20. 投票ごとにユーザー名を保存してDjango rest frameworkで投票システムを作成する
- 21. ユーザーが一度投票するための投票を確認する
- 22. ボタンをクリックしてPythonで投票する方法
- 23. 最適な投票ソリューション
- 24. VB.NETのOutlookメールに投票ボタンを含める方法
- 25. PHP/MySQL:投票システムでは、すでに投票したプロフィールをユーザーに見せないようにするにはどうすればよいですか?
- 26. あなたの投稿をデフォルトでパスワードで保護する
- 27. 投票 - ストアドプロシージャ
- 28. 投票ネットワークアーキテクチャ
- 29. JQuery Ajax投票
- 30. ブキットマップ投票
投票システムは、登録ユーザーのみが有効になって... – SolidSnake