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のストレージエンジンの詳細な説明

推薦する

Linux システムで Tomcat のポート 80 を使用する方法

アプリケーションシナリオ多くの場合、Linux サーバーに tomcat や nginx などのソフ...

Linux で開いているポートへのリモート アクセスを許可する方法

1. ファイアウォール設定ファイルを変更する # vi /etc/sysconfig/iptable...

VUEのデータプロキシとイベントの詳細な説明

目次Object.defineProperty メソッドのレビューデータブローカーとは何ですか? V...

CSS シャドウアニメーションの最適化のヒント

このテクニックは、この記事から来ています - シルキーでスムーズなパフォーマンスでボックスシャドウを...

フロントエンドページのポップアップマスクはページのスクロールを禁止します

フロントエンド開発者がよく遭遇する問題は、ユーザーに情報を提示するためのポップアップ ウィンドウを作...

見落とされがちなMETAタグの特殊効果(ページ遷移効果)

Web デザインで js を使用すると、多くのページ効果を実現できますが、HTML タグの META...

GoogleとFacebookがDockerを使わない理由

この記事を書いた理由は、修正した分散 PyTorch プログラムを Facebook のクラスター上...

Dockerの一般的なコマンドとヒントのまとめ

インストールスクリプトUbuntu / CentOS Debian のインストールに問題があるようで...

Mysql ALTER TABLE はフィールドを追加するときにテーブルをロックしますか?

目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...

広告を閉じる効果を実現するJavascript

参考までに、Javascript を使用して広告を閉じる方法に関するケース スタディを示します。詳細...

Vue-Routerのインストールと使用方法の詳細な説明

目次インストールルーティングの基本構成Vue にルーターをインストールするルーターの設定Router...

ウェブページ作成に役立つコード

<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...

require loaderの実装原理の深い理解

序文Node は新しいプログラミング言語ではなく、JavaScript のランタイムに過ぎないとよく...

CSS3で実装された6つの境界遷移効果

6つの効果実装コードhtml <h1>CSS 境界遷移</h1> <セ...

Linux のハードリンクとソフトリンクの区別

Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...