5

Perl ベースの CGI/Fast CGI Web サービスを使用しており、クライアントを IP アドレスでレート制限して、攻撃的なクライアントが過度の作業を引き起こしているのを阻止したいと考えています。

いくつかのコードを調べたところ、CPAN でAlgorithm::TokenBucketが見つかりましたが、それはクライアント リクエスト用です。永続性がなく、ユーザーごとの構成がないため、サーバー側のレート制限にはあまり役に立ちません。

既に存在するものに対する提案を探しています。それ以外の場合は、 IP アドレスごとのDB_Fileへの関連付けや、トークン管理を行うバッチ ジョブなどの単純な永続性に基づいて独自のものを展開する必要があります。

4

2 に答える 2

4

あなたが求めたものではないことはわかっていますが、すでに行われているスタック内の別の場所でこれを処理することを検討しましたか? 明らかに、展開スタックはわかりませんが、Apache の場合はmod_evasiveを使用できます。あるいは、Linux を使用している場合は、次のようなものを使用して iptables にその仕事をさせることができます:

#Allow only 12 connections per IP
/sbin/iptables -A INPUT -p tcp --dport 80 -m conn-limit --connlimit-above 12 -j REJECT --reject-with tcp-reset

確かに、より複雑なルールが可能です。

于 2009-02-02T04:06:57.743 に答える