インターネットの開発により、Webサイトの訪問の数は増加し続け、サーバーリソースが厳しくなり、サーバーがクラッシュする可能性があります。さらに、ハッカー攻撃のリスクも高まっています。ウェブサイトを保護し、サーバーの通常の操作を確保するために、ますます多くのWebサイトが、デバイスごとに1秒あたりのサーバーアクセスの数を制御することにより、過度のリクエストがサーバーがダウンするのを防ぐためにトラフィック制限を取得しています。
PHPでは、トラフィック制限の実装には通常、次の手順が必要です。
PHPトラフィック制限のコード例は次のとおりです。
//デフォルトのライセンスされたリクエスト数を設定します$ request_limit = 20; //クライアントのIPアドレスを得る$ ip_address = $ _server ['remote_addr']; //このデバイスのリクエストの数を得る$ request_amount = $ redis-> get($ ip_address); //リクエストの数が制限を追い越しますえた場合、429ステータスコードを戻るしますif($ request_amount> $ request_limit){ http_response_code(429); 出口; } //リクエストの数を増やす$ redis-> incre($ ip_address);
トラフィックの制限を設定する場合、ユーザーエクスペリエンスに影響を与えないように、通常の要求を誤って傍受しないように特別な注意を払う必要があります。
上記のコードでは、Redisを使用してリクエストの数を保存します。Redisは効率的なカウントを提供し、有効期限の設定をサポートするためです。各要求は、関連するパラメーターを搭載している場合、多くのサーバーリソースを消費することができるため、トラフィックの制限プロセスを最適化することが重要です。
Redisとは別に、サーバーのストレスを緩和する他の方法があります。
開発プロセス中に、カウンタータイムの変化によって引き起こされる異常なカウントを防ぐために、特別な注意を払う必要があります。
ネットワークセキュリティの問題がますます深刻になるにつれて、ファイアウォールはPHPアプリケーションのセキュリティを保護する重要な手段になりました。ファイアウォールは、違法なネットワークリクエストを効果的にブロックし、ハッカーが攻撃を防ぐことができます。
ファイアウォールは、2つのタイプに分けることができます。ソフトウェアファイアウォールとハードウェアファイアウォール:
ファイアウォールは、サーバー側に展開するだけでなく、PHPアプリケーションレイヤーで構成することもできます。これが簡単なPHPファイアウォールの例です。
//アクセスライセンスのIPアドレスのリスト$ Allow_Ips = array( '192.168.1.1'、 '192.168.2.1'); //クライアントのIPアドレスを得る$ ip_address = $ _server ['remote_addr']; // IPアドレスがライセンスリストにあるかどうかを確認するif(!in_array($ ip_address、$ allow_ips)){ die( '認めるされていない!'); }
実際の開発では、ファイアウォールは、開発者がタイムリーに例外要求を発見し、サーバーのメンテナンスを促進し、PHPアプリケーションの安全な操作を確保するのに役立ちます。
ファイアウォールはアプリケーションを攻撃から効果的に保護できますが、アクセス要求を増やすと、アプリケーションの複雑さが増加するにつれてサーバーリソースの使用率につながる可能性があります。これを行うには、次の最適化戦略を採用できます。
この記事では、トラフィックの制限とファイアウォールを通じてPHPアプリケーションのセキュリティを保護する方法について説明します。トラフィックの制限とファイアウォールを合理的に構成することにより、ハッカー攻撃とサーバーのクラッシュを効果的に防止し、PHPアプリケーションの安定した動作を確保できます。開発者とウェブサイト管理者は、さまざまなアプリケーションシナリオに基づいて適切な保護ポリシーを選択する必要があります。