UA による Web サイトのクロールを防ぐ Nginx のクローラー対策戦略

UA による Web サイトのクロールを防ぐ Nginx のクローラー対策戦略

クローラー対策ポリシー ファイルを追加しました:

vim /usr/www/server/nginx/conf/anti_spider.conf

ファイルの内容

#Scrapyなどのツールによるクロールを無効にする if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { 
   403 を返します。 
} 
# 指定された UA または空の UAif によるアクセスを無効にします ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$" ) { 
   403 を返します。        
} 
#GET|HEAD|POST以外の方法によるクロールを無効にする if ($request_method !~ ^(GET|HEAD|POST)$) { 
  403 を返します。 
}
#単一のIPをブロックするコマンドは#deny 123.45.6.7です
#123.0.0.1 から 123.255.255.254 までのセグメント全体をブロック#deny 123.0.0.0/8
#123.45.0.1 から 123.45.255.254 までの IP 範囲をブロックします #124.45.0.0/16 を拒否します
#123.45.6.1から123.45.6.254までのIP範囲をブロックするコマンドは#deny 123.45.6.0/24です
# 以下の IP はすべて不正です #deny 58.95.66.0/24;

構成の使用法

サイトのサーバーに導入する

# クローラー対策には /usr/www/server/nginx/conf/anti_spider.conf を含める

最後にnginxを再起動します

有効かどうかを確認する

YYSpiderのシミュレーション

λ curl -X GET -I -A 'YYSpider' https://www.myong.top
HTTP/1.1 200 接続が確立されました
HTTP/2 403
サーバー: marco/2.11
日付: 2020年3月20日金曜日 08:48:50 GMT
コンテンツタイプ: text/html
コンテンツの長さ: 146
xソース: C/403
x-リクエストID: 3ed800d296a12ebcddc4d61c57500aa2

Baiduspiderをシミュレートする

λ curl -X GET -I -A 'BaiduSpider' https://www.myong.top
HTTP/1.1 200 接続が確立されました
HTTP/2 200
サーバー: marco/2.11
日付: 2020年3月20日金曜日 08:49:47 GMT
コンテンツタイプ: text/html
変化: Accept-Encoding
xソース: C/200
最終更新日: 2020年3月18日水曜日 13:16:50 GMT
電子タグ: "5e721f42-150ce"
x-リクエストID: e82999a78b7d7ea2e9ff18b6f1f4cc84

クローラーの一般的なユーザーエージェント

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 役に立たないクローラー

上記は、UA による Web サイトのクロールを防ぐための Nginx アンチクローラー戦略の詳細です。Nginx アンチクローラーの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • SpringBoot+webMagicはウェブサイトクローラーのサンプルコードを実装します
  • Springboot+webmagicはJavaクローラーJDBCとMySQLメソッドを実装します
  • Python クローラーが Taobao 製品の価格比較をクロールします (Taobao アンチクローラー メカニズム ソリューションを使用)
  • Python でアンチクローラーを回避する方法のまとめ
  • Pythonのアンチクローラー知識ポイントをクッキーで処理する方法の詳細な説明
  • Selenium-webdriver のアンチクローラー メカニズムを回避する 4 つの方法の詳細な説明
  • ウェブサイトのクローラー対策戦略
  • Python の一般的なクローラー対策戦略
  • 淘宝スライダー検証機能をスキップするSeleniumアンチクローラー実装コード
  • Python クローラーとアンチクローラーの戦い
  • Pythonのアンチクローラーはブラウザを偽装してクロールする
  • Springboot アンチクローラー コンポーネント kk-anti-reptile の使用方法

<<:  MySQLのファジークエリのような遅い速度を解決する方法

>>:  Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

推薦する

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

知らないかもしれない実用的なTypeScriptのヒント

目次序文関数のオーバーロードマッピングタイプ部分的、読み取り専用、Null 可能、必須選択、記録除外...

Mysql 主キー UUID と自動増分主キーの違いと利点と欠点

導入私はしばらくの間、postgresql データベースを使用していました。クラウドに移行した後、自...

ミニプログラム開発ツールのソースコードからの基本実装の分析

目次ミニプログラム開発者ツールのソースコードを表示する方法ミニプログラムアーキテクチャ設計1. ミニ...

MySQL 8.0.20 のインストールと設定方法のグラフィックチュートリアル

MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...

Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します

目次Viteプロジェクトを作成するコンポーネントの作成Viteプロジェクトを作成するパフォーマンスが...

4種類のMySQL接続とマルチテーブルクエリの詳細な説明

目次MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリビルド環境: 1. 内なる慈恩...

VMware12.0 インストール Ubuntu14.04 LTS チュートリアル

私は、デスクトップ バージョンとサーバー バージョンの両方で、仮想マシンにさまざまなイメージを何度も...

はじめに: HTML の基本的なタグと属性の簡単な紹介

HTML はタグと属性で構成されており、これらを組み合わせてブラウザにページの表示方法を指示します。...

Explainキーワードに基づいてMySQLインデックス機能を最適化する方法

EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...

div の水平レイアウトを両側に揃える 3 つの方法

この記事では、主に、div の水平レイアウトの両側の配置を実装する 3 つの方法を紹介し、それらを共...

Linux リモートログイン実装チュートリアル分析

Linux は一般的にサーバーとして使用され、サーバーは一般的にコンピュータルーム内に置かれます。L...

tinyMCEの使い方と体験の詳細な説明

tinyMCE の使用方法の詳細な説明初期化TinyMCE を初期化するときは、ページの HEAD ...

ページング効果を実現するNode+Express

この記事では、ページング効果表示を実現するためのnode+expressの具体的なコードを参考までに...

ウェブサイトに最も必要なのは、ターゲットユーザーグループのエクスペリエンスを向上させることです。

「大河は東に流れ、波は歴代の英雄たちを洗い流した。古城の西側は三国時代の周朗の赤壁だと言われている...