1

私のサイトの基本的なセットアップは次のとおりです。ユーザーがホームページにメッセージを入力し、Enter キーを押すと、メッセージは AJAX リクエストを介してlike.php、ユーザーに送り返されるリンクをエコーするファイルに送信されます。

ユーザーがEnterキーを押したときに入力を無効にしましたが、ユーザーが常にlike.phpPOSTリクエストであふれ、データベースがいっぱいになるのを止めるものは何もありません。

ここ SO の誰かが、トークン システムを使用するように私に言いましたが、その方法については言及しませんでした。私はこれが以前に行われているのを見てきましたが、それが効果的であることを知っています。

私が抱えている唯一の問題はlike.php、それが有効なトークンであることをどうやって知るのでしょうか? 私のコードは現時点ではこれです:

$token = md5(rand(0, 9999) * 1000000);

およびマークアップ:

<input type="hidden" name="token" value="<?php echo $token ?>" />

like.phpPOSTを介してトークンを送信します。しかしlike.php、これが有効なトークンであることをどのように知るのでしょうか? 代わりに、ユーザーにリンクされているものをトークン化する必要がありますか? 彼らのIPアドレスは好きですか?または、おそらく現在の分をトークン化し、それが同じ分であることを確認しlike.phpます...

このアムターに関するヘルプは大歓迎です、ありがとう。:)

4

3 に答える 3

1

最善の方法はセッション変数を使用することです。これは、ユーザーがフォーム要素のように簡単に変数を削除したり変更したりできないためです。または、IP アドレスと時刻をデータベースに保存し、それを調べて、ユーザーが再度投稿できるかどうかを確認することをお勧めします。

于 2010-06-13T14:29:51.677 に答える
1

車輪を再発明しないでください - user_id、user_ip、あなたが持っているもので定義された、このユーザーからの最後のコメント時間を見て、彼が投稿を許可したかどうかを判断してください.

于 2010-06-13T14:30:47.570 に答える
1

ほとんどのユーザーにとって、1 分間は長すぎるように思えます。タブ ブラウジング、ブロードバンド インターネット サービス、および提示されたすべてのテキストを読まないというユーザーの傾向はすべて、1 分以内に何もしないと飽きてしまう可能性が高い多数のユーザーの原因となっています。

ユーザーの IP アドレスを保存することをお勧めします。

于 2010-06-13T16:21:06.600 に答える