ホームページ >運用・保守 >Nginx >nginx を使用してホットリンクを防ぐ方法

nginx を使用してホットリンクを防ぐ方法

王林
王林オリジナル
2023-06-11 13:25:414065ブラウズ

インターネットの普及に伴い、写真や動画などのリソースへの外部リンク機能を提供するWebサイトが増えています。しかし、この外部リンク機能は盗まれやすいのです。ホットリンクとは、他の Web サイトがあなたの Web サイト上の写真、ビデオ、その他のリソースを使用し、それらのリソースを独自のサーバーにダウンロードするのではなく、参照アドレスを通じて自分の Web サイトに直接表示することを意味します。このようにして、ホットリンク Web サイトは Web サイトのトラフィックと帯域幅のリソースを無料で使用できるため、リソースが無駄になり、Web サイトの速度に影響します。

この問題に対処するには、Nginx を使用してホットリンクを防ぐことができます。 Nginx は一般的な Web サーバーおよびリバース プロキシ サーバーであり、ホットリンクの防止にも効果があります。次にNginxを使ってホットリンクを防ぐ方法を紹介します。

ステップ 1: アンチホットリンク モジュールを有効にする

Nginx のコア モジュールには、アンチホットリンク関連の機能がすでに組み込まれています。 Nginx を構成する前に、まず Nginx でアンチホットリンク モジュールが有効になっているかどうかを確認する必要があります。有効になっていない場合は、Nginx を再コンパイルするか、対応するモジュールをインストールする必要があります。

ステップ 2: ホットリンク防止ルールを構成する

Nginx のホットリンク防止機能は、構成ファイル内の location ディレクティブを通じて実装できます。次の内容を Nginx 仮想ホスト構成ファイルに追加する必要があります:

location ~* .(gif|jpg|jpeg|png|bmp)$ {
    valid_referers none blocked yourdomain.com;
    if ($invalid_referer) {
        return   403;
    }
}

上記のコードは、外部リンクが yourdomain.com サイトでのみ許可されていることを示しています。ソースが yourdomain.com ではない場合、403 エラーが返され、直接アクセスできません。

ステップ 3: ホワイトリストの追加

特定の Web サイトまたは IP アドレスの外部リンクを許可する必要がある場合は、それらをホワイトリストに追加できます。 Nginx では、valid_referers ディレクティブを通じてホワイトリストに登録できます。たとえば、次のコードを設定ファイルのアンチホットリンク ルールに追加して、ホワイトリストを追加できます。

location ~* .(gif|jpg|jpeg|png|bmp)$ {
    valid_referers none blocked yourdomain.com example.com 192.168.0.1;
    if ($invalid_referer) {
        return   403;
    }
}

上記のコードでは、yourdomain.com と example.com および IP アドレス 192.168 を追加します。 .0.1 ホワイトリストに追加すると、これらの Web サイトはリソースに直接アクセスできるようになります。

ステップ 4: Rewrite モジュールを有効にする

Nginx の Rewrite モジュールを使用して URL を書き換えることができます。Rewrite モジュールを使用すると、元のサイトの画像 URL を非表示にすることができるため、ホットリンクの難易度が高くなります。 . Web サイトのリソースを保護します。次の内容を構成ファイルに追加する必要があります:

if ($http_referer !~ ^http://(www.)?yourdomain.com(/|$)) {
    return 403;
}

上記のコードは、ソースが Web サイトでない場合、403 エラーが返されることを意味します。このようにして、ホットリンクを効果的に防止できます。

概要

上記は、Nginx を使用してホットリンクを防ぐいくつかの方法です。これらの方法を通じて、Web サイトのリソースを保護し、帯域幅とリソースの無駄を回避し、同時に Web サイトのセキュリティを高めることができます。実際のアプリケーションでは、リーチ防止戦略の有効性を確保するために、独自のニーズに応じて構成および調整する必要があります。

以上がnginx を使用してホットリンクを防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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