2016-10-25 11 views
0

は、私はこのようなスロットルを持って言う:誰かが彼らが絞られた後、そのリンクにアクセスしようとし続けた場合レールはラックアタックスロットルの動作をどのようにしますか?

throttle('emails/ip', :limit => 5, :period => 24.hours) do |req| 
    if req.path == '/users/check_email_availability' && req.post? 
    req.ip 
    end 
end 

はどうなりますか?彼らはさらに24時間ブロックされますか?または、宝石は彼らの最後の5つの要求だけを見ているでしょうか?いつ彼らはゆるされませんか?

答えて

0

値がtruthyのすべてのリクエストは、要求がブロックされている場合でもタイムスタンプでキャッシュされます。要求がブロックされているかどうかを確認するには、rack-attackは、:period時間内に要求をカウントします。

したがってrack-attack:periodをブロックしません。代わりに、:period内のすべての要求をカウントし、このカウントが:limitより大きい場合、要求はブロックされます。

関連する問題