0

質問はブルート フォース攻撃に関連しています。ユーザーが間違ったパスワードを入力すると、php は試行の mysql 日時を記録します。また、パスワードが正しくない場合は、ユーザーが特定の時間 (1 ~ 2 秒) 後にのみ次の試行を行うことができるようにする必要があります。私が理解しているように、ボットがリクエストを行うのを妨げないため、phpスリープは良くありませんか?

解決策は何ですか(PHPスリープなしで時間遅延を設定するには)?

4

1 に答える 1

1

そのユーザーのリクエスト数が多い場合は、ファイルの先頭にスリープを追加できます。過去 24 時間に失敗したリクエストごとに 1 秒追加するか、その数が特定のしきい値に達した場合に終了します。

<?
//script to find when last requests were made
if($failed>2)
{
    sleep($failed+1);
}elseif($failed>10)
{
    exit;//or redirect
}
//the rest of the file

?>
于 2013-02-19T19:54:16.540 に答える