ホームページ  >  記事  >  バックエンド開発  >  PHPで他のユーザーに影響を与えずに特定のユーザーのみへの応答を遅らせることは可能ですか?

PHPで他のユーザーに影響を与えずに特定のユーザーのみへの応答を遅らせることは可能ですか?

WBOY
WBOYオリジナル
2016-08-04 09:19:48975ブラウズ

最近このプロジェクトが悪意を持ってスワイプされている疑いがあるため、誰かがスワイプしている疑いがある場合は対応を遅らせるつもりです。ただし、他の人のアクセス速度に影響を与えてはなりません。私の知る限り、PHP はリクエストごとにスレッドを開きます。たとえば、同時に 1,000 件のアクセスがあった場合、この遅延応答メソッドを使用したのは 1 つだけです。リクエストは早くなりますか?まだ同じ速度ですか?

現時点ではスリープを使うしか方法がありません…


ユーザーを特定する方法はすでにわかっていますが、知りたいのはユーザーのリクエストを遅らせる方法です


回答: 友人は、http エラー コードを返すと述べました。これは可能ですが、ユーザーを判断する方法、主に IP とその識別コードを制限しています。ユーザーが IP を変更すると、これらの両方がいつでも変更される可能性があります。彼の IP のみが制限されており、いつでも動的 IP を使用して自分の識別コードをブラッシングおよび変更するだけで済みます。また、引き続き私のインターフェースをブラッシングすることができます。また、復帰の遅延は、サーバーがダウンしたためとみなされます。彼はただ満足してください

返信内容:

最近このプロジェクトが悪意を持ってスワイプされている疑いがあるため、誰かがスワイプしている疑いがある場合は対応を遅らせるつもりです。ただし、他の人のアクセス速度に影響を与えてはなりません。私の知る限り、PHP はリクエストごとにスレッドを開きます。たとえば、同時に 1,000 件のアクセスがあった場合、この遅延応答メソッドを使用したのは 1 つだけです。リクエストは早くなりますか?まだ同じ速度ですか?

現時点ではスリープを使うしか方法がありません…


ユーザーを特定する方法はすでにわかっていますが、知りたいのはユーザーのリクエストを遅らせる方法です


回答: 友人は、http エラー コードを返すと述べました。これは可能ですが、ユーザーを判断する方法、主に IP とその識別コードを制限しています。ユーザーが IP を変更すると、これらの両方がいつでも変更される可能性があります。彼の IP のみが制限されており、いつでも動的 IP を使用して自分の識別コードをブラッシングおよび変更するだけで済みます。また、引き続き私のインターフェースをブラッシングすることができます。また、復帰の遅延は、サーバーがダウンしたためとみなされます。彼はただ満足してください

HTTP 104 ステータス コード (伝説的な「接続がリセットされました」) を送信します。

リーリー

もちろん、これは Nginx によっても実行できます。444 (サーバーのタイムアウト応答) または 499 (クライアントが待ちきれず、積極的に接続を閉じる) を送信し、IP を決定してから return 444; を実行します。

スリープメソッドは信頼性が低く、スリープ後は他のリクエストに対するサービスを提供できません。 PHP プロセスの数が限られているため、ブロック操作がスループットに影響を与える可能性があります。どうすれば眠れますか?
返却遅延計画には別の問題があります。これは悪意のあるブラシであるため、複数のリクエストを同時に送信する方法が必要です。そのため、返却遅延はリクエストの数を根本的に減らすことはできませんが、バックログが発生します。サーバー上のリクエスト。独自のクライアントや Web ページを使用する場合、「悪意」を持つことは困難です。
戻りを遅らせ、リクエストを非同期で返し、とにかくプロセスをブロックしない方法もあります。
要約すると、2階で彼に4xxを与える方が良いです。

ちょっと聞きたいのですが、IPアドレスをご存知ですか?

アクセス頻度を制限する

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。