ホームページ >バックエンド開発 >PHPチュートリアル >PHP キャッシュ開発を使用して Web サイトのセキュリティを向上させる方法
インターネットの普及に伴い、ますます多くの Web サイトやアプリケーションが登場しており、そのほとんどはデータベースと対話する必要があります。ただし、データベースへの頻繁なアクセスは、Web サイトのパフォーマンスに大きな影響を与えます。この問題を解決するには、キャッシュを使用して Web サイトのアクセス速度とセキュリティを向上させることができます。以下では、PHP を使用して Web サイトのセキュリティを向上させるキャッシュを開発する方法を紹介し、具体的なコード例を通して説明します。
1.なぜキャッシュが必要なのでしょうか?
従来の Web サイト アプリケーションでは、クライアントがリクエストを行うたびに、アプリケーション サーバーは通常、データベースにデータのクエリを実行するため、大量のデータベース アクセス リクエストが生成されます。同時接続ユーザー数が増加すると、データベースへのアクセス負荷も増大し、Web サイトのアクセス速度が低下します。また、データベースへのデータアクセスは制御できないため、悪意のある攻撃や不正操作の危険性があります。
これらの問題を解決するには、キャッシュ テクノロジを使用できます。キャッシュとは、よく使用されるデータをメモリに保存し、すぐに読み取ってアクセスできるようにすることを指します。キャッシュ テクノロジーにより、Web サイトはデータベースへのアクセス圧力を軽減し、アクセス速度を向上させ、データベースのセキュリティを保護できます。
2. PHP キャッシュ テクノロジの実装
PHP では、APC、Memcache、Redis など、多くの既製のキャッシュ テクノロジが利用可能です。これらのテクノロジの実装はさまざまですが、基本的な考え方は似ています。つまり、頻繁に使用されるデータをメモリに保存して、アクセス速度を向上させ、データベースの負荷を軽減します。以下では、APC キャッシュを例として、PHP キャッシュ テクノロジを使用して Web サイトのセキュリティを向上させる方法を紹介します。
APC テクノロジーを使用する前に、サーバーにインストールして有効にする必要があります。 APC は、次のコマンドを使用してインストールできます。
sudo apt-get install php-apcu
インストールが完了したら、php.ini ファイル (通常は /etc/php/7.0/fpm/php.ini にあります) で APC モジュールを有効にする必要があります。 ) を置き換えて、次のコードをファイルの最後に追加します:
extension=apcu.so apc.enabled=1
次に、PHP サービスを再起動します:
sudo systemctl restart php7.0-fpm
Before APC キャッシュ テクノロジを使用する場合は、キャッシュが使用可能かどうかを検出する必要があります。次のコードを使用して検出できます:
if(!function_exists('apc_store')){ echo 'APC Cache Not Available'; exit; }
次に、apc_store() 関数を使用してデータを APC キャッシュに保存できます:
if(!apc_exists('my_cache_key')){ $cache = 'This data will be cached'; //存储数据 apc_store('my_cache_key', $cache, 300); }else{ //从缓存中获取数据 echo 'Data from Cache : '.apc_fetch('my_cache_key'); }
上記のコードでは、apc_store()関数を使用する場合 データをキャッシュに格納します パラメータ 1 にキャッシュされたデータの一意のキー値を指定します パラメータ 2 にキャッシュするデータを指定します パラメータ 3 にデータのキャッシュ時間 (秒) を指定しますapc_fetch() 関数は、対応するキャッシュ データを見つけた場合、キャッシュ データを返します。
キャッシュ テクノロジーは、Web サイトのアクセス速度を向上させるだけでなく、Web サイトのセキュリティも向上させることができます。たとえば、キーの検証が必要な API がある場合、検証結果をキャッシュして、検証ごとのデータベース アクセス リクエストを減らすことができます。さらに、データベースに保存されているパスワードがクリア テキストである場合、セキュリティを向上させるために、パスワードの MD5 ハッシュ値またはその他の暗号化された値をメモリにキャッシュできます。
次は、キャッシュ テクノロジを使用して API セキュリティを保護する例です:
function validate_key($api_key){ if(apc_exists($api_key)){ //从缓存中获取验证结果 return apc_fetch($api_key); }else{ //在数据库中验证API密钥 $result = verify_api_key($api_key); //将验证结果缓存起来,缓存时间为30秒 apc_store($api_key, $result, 30); return $result; } }
上記のコードでは、関数 validate_key() を使用して API キーを検証します。キー値が APC キャッシュに存在する場合はキャッシュから検証結果を取得し、存在しない場合はデータベースで検証し、結果を APC キャッシュに格納して返します。
3. 概要
キャッシュ テクノロジを使用すると、Web サイトのアクセス速度とセキュリティが大幅に向上し、データベース アクセスの負担が軽減されます。 PHP では、APC、Memcache、Redis などのさまざまなキャッシュ テクノロジから選択できます。キャッシュテクノロジーを使用する場合は、Web サイトのセキュリティを低下させるキャッシュの無効化や無駄なデータの保存を避けるために、キャッシュ時間とキャッシュ条件に注意する必要があります。
以上がPHP キャッシュ開発を使用して Web サイトのセキュリティを向上させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。