nginx アンチホットリンクおよびアンチクローラー設定の詳細な説明

nginx アンチホットリンクおよびアンチクローラー設定の詳細な説明

新しい設定ファイルを作成します (たとえば、nginx インストール ディレクトリの下の conf ディレクトリに移動し、agent_deny.conf を作成します)

Scrapyなどのツールによるクロールを無効にする if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; }

指定されたUAまたは空のUAによるアクセスを禁止する

#禁止のスクレイピー
$http_user_agent の場合、(Scrapy|Curl|HttpClient)
{
  403 を返します。
}

#禁止されたU​​A
if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" )
{
  403 を返します。
}

#GET|HEAD|POST メソッドによるアクセスは禁止
($request_method !~ ^(GET|HEAD|POST)$) の場合
{
  403 を返します。
}

次に、Web サイト構成のサーバー セクションに次のコードを挿入します: include agent_deny.conf;

nginxを再起動します。

/data/nginx/sbin/nginx -s リロード

クローリングをシミュレートするために curl -A を使用してテストを実行できます。例:

curl -I -A 'YYSpider' <<www.xxx.con>>

結果

[root@11 conf]# curl -I -A 'YYSpider' www.xxx.cn
HTTP/1.1 403 禁止
サーバー: nginx/1.12.0
日付: 2019年4月24日水曜日 11:35:21 GMT
コンテンツタイプ: text/html
コンテンツの長さ: 169
接続: キープアライブ

空の UA でクロールをシミュレートします。

curl -I -A' ' <<www.xxx.cn>>

結果

[root@11 conf]# curl -I -A' ' www.xxx.cn
HTTP/1.1 403 禁止
サーバー: nginx/1.12.0
日付: 2019年4月24日水曜日 11:36:06 GMT
コンテンツタイプ: text/html
コンテンツの長さ: 169
接続: キープアライブ

Baiduスパイダーのクローリングをシミュレートします。

curl -I -A 'Baiduspider' <<<www.xxx.cn>>>

[root@11 conf]# curl -I -A 'Baiduspider' www.xxx.cn
HTTP/1.1 200 OK
サーバー: nginx/1.12.0
日付: 2019年4月24日水曜日 11:36:47 GMT
コンテンツタイプ: text/html
コンテンツの長さ: 612
最終更新日: 2019年4月12日(金) 13:49:36 GMT
接続: キープアライブ
ETag: "5cb09770-264"
受け入れ範囲: バイト

UAタイプ

FeedDemon コンテンツ コレクション BOT/0.1 (JCE 用 BOT) SQL インジェクション CrawlDaddy SQL インジェクション Java コンテンツ コレクション Jullo コンテンツ コレクション Feedly コンテンツ コレクション UniversalFeedParser コンテンツ コレクション ApacheBench cc 攻撃者 Swiftbot 役に立たないクローラー YandexBot 役に立たないクローラー AhrefsBot 役に立たないクローラー YisouSpider 役に立たないクローラー (UC Shenma Search に買収されました。このスパイダーはリリースできます!)
jikeSpider 役に立たないクローラーMJ12bot 役に立たないクローラーZmEu phpmyadmin 脆弱性スキャンWinHttp コレクションcc 攻撃EasouSpider 役に立たないクローラーHttpClient tcp 攻撃Microsoft URL コントロール スキャンYYSpider 役に立たないクローラーjaunty wordpress ブラスト スキャナーoBot 役に立たないクローラーPython-urllib コンテンツ コレクションIndy ライブラリ スキャンFlightDeckReports Bot 役に立たないクローラーLinguee Bot 役に立たないクローラー

Nginx アンチホットリンク設定

背景: サードパーティの参照リンクが画像にアクセスしてサーバーのリソースとネットワーク トラフィックを消費するのを防ぐために、サーバー上でホットリンク防止制限を行うことができます。
ホットリンク保護を実装する方法には、参照方式と署名方式の 2 つがあります。

アンチホットリンクを実現するための方法を参照

動作モジュール: ngx_http_referer_module。

有効な変数: $invalid_referer、グローバル変数。

構成ドメイン: サーバー、場所

構成:

サーバー{
  聞く 80;
  サーバー名 www.imcati.com refer-test.imcati.com;
  ルート /usr/share/nginx/html;
  場所 ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    valid_referers なし、www.imcati.com がブロックされました。
    ($invalid_referer) の場合 {
      403 を返します。
      }
   }
  }
  • valid_referers: リソース アクセスが次の方法 (ホワイトリストなど) で合法であることを指定します。 vaild_referers 有効な参照リンクは次のとおりです。それ以外の場合は $invaild_refere を入力し、403 forbidden を返します。
  • none: 欠落しているヘッダーへのアクセスを許可します。
  • ブロック: 対応するリファラー値のないリクエストを許可します。
  • server_names: リファラー サイトのドメイン名が server_name のローカル マシンに設定されているドメイン名と同じ場合、アクセスが許可されます。

nginx アンチホットリンクとアンチクローラーの詳細な設定に関するこの記事はこれで終わりです。より関連性の高い nginx アンチホットリンクとアンチクローラーの設定内容については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様の今後の 123WORDPRESS.COM へのご支援をお待ちしております。

以下もご興味があるかもしれません:
  • JSP でアンチホットリンクを実装する方法
  • 一部のウェブサイトでは、空白のリファラーアンチホットリンク画像jsクラッキングコードを許可しています
  • 画像アンチホットリンククラッキング操作例のPHP実装【画像アンチホットリンク問題解決/リバースプロキシ】
  • Nginx でアンチホットリンクを設定するための手順を完了する
  • リファラー原理と画像ホットリンク防止実装方法の詳細な説明
  • Nginx のアンチホットリンクを設定する方法
  • .htaccess を使用して画像のホットリンク保護を設定する詳細な方法
  • PHP のアンチホットリンク実装方法の分析
  • Nginxはリファラディレクティブを使用してアンチホットリンク設定を実装します
  • JavaScriptアンチホットリンクの原理とクラッキング方法

<<:  VueはEChartsを使用して折れ線グラフと円グラフを実装します

>>:  MySQLのストレージエンジンの詳細な説明

推薦する

Dockerを使用してPythonランタイム環境の基本イメージを作成する方法

1. 準備1.1 Pythonインストールパッケージをダウンロードします(注:Pythonバージョン...

Docker 構成 Alibaba Cloud イメージアクセラレーション プル実装

今日はdockerを使ってイメージをpullしたのですが、速度が悪くて見れず最後まで待ち続けました。...

Vue で棒グラフを使用し、自分で設定を変更する方法

1. HTMLファイルでechartをインポートする <!-- echarts をインポート ...

nodejsとyarnをインストールし、Taobaoソースプロセスレコードを構成する

目次1. nodejsをダウンロードする2. ダブルクリックしてインストール3. グローバル npm...

クロスブラウザの問題に対する 5 つの解決策 (要約)

簡単なレビュー: ブラウザの互換性の問題は、しばしば頭痛の種となります。ここでは、これらの問題を回避...

Nginx は gzip 圧縮に基づいてアクセス速度を向上します

1. nginx はなぜ gzip を使用するのですか? 1. 圧縮の役割:ページがgzipで圧縮さ...

Telnet は Alpine イメージの busybox-extras に移動されました

Alpine イメージの telnet はバージョン 3.7 以降、busybox-extras パ...

両側にCSS固定レイアウト、中央に適応レイアウトを実装

フローティング、フローティング埋め込み div、配置、フレックスという 4 つの一般的な方法と原則を...

MySQL の列から行への変換のヒント (共有)

序文:多くのビジネス テーブルでは、歴史的またはパフォーマンス上の理由により、最初のパラダイムに違反...

MySQL シャーディング入門ガイド

序文リレーショナル データベースは、システムのボトルネックになる可能性が高くなります。単一のマシンの...

Hbase 入門

1. HBaseの概要1.1 HBaseとはHBase は、高い信頼性、高いパフォーマンス、列ストレ...

display または visibility を通じて HTML 要素を表示または非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...

Linux での Hbase のインストールと設定のチュートリアル

目次Linux での Hbase のインストールと設定1. Hbaseインストールパッケージをダウン...

HTML ではスペースはどのように表現されますか (どのような意味ですか)?

Web 開発では、次のような文字によく遭遇します: &nbsp;これは実際には HTML が...

CSS を使用して適応型の幅と高さを持つ 16:9 の長方形を実装する例

先ほど、適応幅と高さが1:1の正方形を作成する方法について説明しました。 https://www.j...