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

推薦する

EasyUEFI を使用して Windows 10 で USB ドライブなしで Ubuntu 18 をインストールする

1. BIOSを確認するまず、コンピュータの起動モードを確認します。win+R と入力し、msinf...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

...

VMWare14.0.0のUbuntu仮想マシンで共有フォルダを設定する

これは私の最初のブログ投稿です。時間の制約があるため、どのようにフォーマットすればよいかわかりません...

将来最も成功する企業はテクノロジー企業でしょうか、それともデザイン企業でしょうか?

ムーアの法則はもはや適用されない2004年にフレックストロニクスがフロッグデザインを買収したのを皮切...

Docker swarm を使用して Nebula Graph クラスターを迅速にデプロイする方法のチュートリアル

1. はじめにこの記事では、Docker Swarm を使用して Nebula Graph クラスタ...

JavaScript オブジェクトを比較する 4 つの方法

目次序文参考比較手動比較浅い比較徹底比較要約する序文JavaScript でプリミティブ値を比較する...

nginx keepaliveの具体的な使い方

http1.1 プロトコルのデフォルトのリクエスト ヘッダーでは、図に示すように、デフォルトで ke...

Centos7.3 で mysql5.7.18 をインストールして初期パスワードを変更する方法

この記事では、Centos7.3でのmysql5.7.18のインストールと初期パスワードの変更につい...

jsオブジェクト指向カプセル化カスケードドロップダウンメニューリストの実装手順

この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...

Linuxネットワーク構成ツールの使用

この記事では、RHEL8 のネットワーク サービスとネットワーク構成ツール、およびネットワーク ファ...

Linux ディスクのシーケンシャル書き込みとランダム書き込みの方法

1. はじめに● ランダム書き込みではヘッドがトラックを頻繁に変更するため、効率が大幅に低下します。...

Nginx タイムアウト設定の詳細な説明

最近、プロジェクトで nginx を使用し、バックエンドで Java を使用しました。バックエンドで...

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...

Linux サーバーと Windows システム間でファイルをアップロードおよびダウンロードする方法

背景: Linux サーバーのファイルのアップロードとダウンロード。 XShell+Xftp インス...