ホームページ >運用・保守 >安全性 >Python アンチクローラーの知識ポイントは何ですか?

Python アンチクローラーの知識ポイントは何ですか?

王林
王林転載
2023-05-17 10:18:161627ブラウズ

1. クローラー対策が必要な理由?

クローラー対策システムを設計する前に、まずクローラーが Web サイトにどのような問題を引き起こすかを見てみましょう?

エッセンス 一般に、人々が閲覧・閲覧・利用できるインターネット上のウェブサイトやウェブサイト上のデータはオープンでアクセス可能なものであるため、いわゆる「不正アクセス」の問題は存在しません。

クローラ プログラムが Web ページにアクセスすることと人間が Web ページにアクセスすることの間には、本質的な違いはありません。どちらの場合も、クライアントは Web サイト サーバーへの HTTP リクエストを開始します。リクエストを受信した後、Web サイト サーバーはコンテンツ応答をクライアントに返します。

リクエストが開始される限り、Web サイト サーバーは応答する必要があります。応答するには、サーバーのリソースが消費される必要があります。

Web サイト訪問者と Web サイトの間には、相互に有益な関係があり、Web サイトは訪問者に必要な情報とサービスを提供し、訪問者はトラフィック、訪問者、アクティビティをもたらします。したがって、Web サイトの所有者は、訪問者にサービスを提供するためにサーバーの帯域幅、ディスク、メモリを積極的に使用することになります。

では、クローラー プログラムについてはどうでしょうか?これは無料の売春に等しいものです。 Web サイト サーバーのリソースを 2 倍にしてサーバーの帯域幅を占有しても、Web サイトには何のメリットももたらさず、むしろ最終的な結果は Web サイト自体に悪影響を及ぼします。

クローラーはインターネットにおけるアフリカのハイエナとみなされる可能性があり、Web サイト所有者から嫌われるのも不思議ではありません。

2. クローラーを特定する

クローラーが嫌いなので、Web サイトからクローラーを締め出す必要があります。もちろん、クローラーのアクセスを拒否するには、まずネットワーク訪問者の中からクローラー プログラムを特定する必要があります。識別方法?

1. HTTP リクエスト ヘッダー

一般的なネットワーク訪問者はブラウザを使用して Web サイトにアクセスするため、この識別は最も基本的なネットワーク レプティリアン用です。 。ブラウザは、基本情報を示すために独自のリクエスト ヘッダーを取得します。 HTTP リクエスト ヘッダーは誰でも変更したり偽造したりできるため、クローラーによって簡単に破られます。

2. Cookie の値

Cookie は通常、手元にある一時的な ID カードと同様に、Web サイト訪問者を識別するために使用されます。そしてこれに基づいて、Web サイトのサーバーで本人確認が行われます。残念ながら、Cookie はクライアント側に保存されるため、変更および偽造される可能性があります。

3. アクセス頻度

訪問者が Web サイトの特定のページを毎秒リクエストする場合、または数秒以内にこのページを数百回リクエストする場合。この訪問者はクローラーかゴーストのいずれかです。マウスを素早く頻繁にクリックしてページにアクセスできる人間は誰でしょうか?彼はパーキンソン病を患っているのでしょうか、それともタコの生まれ変わりなのでしょうか?

クローラー プログラムをアクセス頻度によって識別することは可能ですが、クローラー プログラムは多数のプロキシ IP を使用して、IP アドレスに 1 回だけアクセスするという効果を達成することもできます。また、ランダムなリクエスト間隔によって回避することもできます。 。

4. マウスの動作軌跡

通常の人間の訪問者が Web ページを閲覧するとき、マウスを動かして機械のように段階的にクリックすることはありません。マウスの動きやクリックはJSスクリプトを通じてキャプチャできるため、訪問者のマウスの動作軌跡を判断することで、訪問者がクローラープログラムであるかどうかを判断できます。

5. トークンの値

現在、多くの Web サイトではフロントエンドとバックエンドを分離する開発手法が採用されており、バックエンド インターフェイスはフロントエンドにデータを返します。フロントエンドはデータを取得した後にそれを結合し、ページがレンダリングされます。したがって、多くのクローラー プログラムは、愚かにページを要求するのではなく、データ インターフェイスを直接探します。トークンは、これらのバックエンド データ インターフェイスを検証するために使用されます。通常、トークンは時刻キーと Web ページキーの組み合わせによって暗号化されます。

クローラーを識別する方法は他にもありますが、ここでは 1 つずつ紹介しません。残念ながら、上記のどの方法を使用して Web クローラーを識別しても、クローラーに騙されたり侵入されたりする危険性が常にあります。

3. クローラーの拒否

Web サイトに一度限りのセキュリティ保護がないのと同様、10 年前に 3389 ポートを閉じると、サーバーのセキュリティ保護が妨げられる可能性があります。現在では、さまざまなファイアウォールやさまざまなセキュリティ対策が追加されており、0Day 脆弱性により脅迫される可能性があります。

爬虫類と反爬虫類の間では常に闘争と激化が存在します。サイバー攻撃と防御、およびクローリング対策の違いは、前者は手加減なしの戦いであるのに対し、後者はオリンピックに出場するボクサーのように手袋やヘルメットを着用することです。

ウェブサイトを運営するにはコンテンツを外部に公開する必要があり、その公開されたコンテンツはアフリカのサバンナに漂う死肉と血の匂いに似ており、ハイエナの到来を直接引き寄せます。

オープン コンテンツと、クローラのデータ マイニング プールになることの回避との間でバランスを取るのは困難な作業です。

1. コンテンツの公開を制限する

オープン コンテンツはユーザーとトラフィックを獲得するための基盤であるため、コンテンツは公開されている必要があります。しかし、コンテンツのオープン性は無制限のオープン性ではありません。未登録ユーザーは 1 つまたは 2 つのコンテンツを表示できますが、すべてのコンテンツに無制限にアクセスできるわけではありません。この制限は、ログイン、スキャン コード検証、Google 検証コードへのアクセスなどのクリック検証メカニズムの形をとることがあります。

最近では、Weibo、Zhihu、Taobao など、コンテンツを限定して開く仕組みを採用している Web サイトが増えています。1 ~ 2 ページのコンテンツが表示されますが、それでも続行したい場合は、申し訳ありませんが、 、 ログインしてください。

2. ユーザー操作を行動的に記録する

訪問者にログインを要求しても問題は解決しません。なぜなら、シミュレートされたログインは、Web クローラー プログラムの開発部門として常に人気があるからです。画像検証 コード、パズル、スライダー、または漢字のクリックはすべて壊れます。 APP およびクローラー プログラムを作成すると、SMS 検証コードが Web サイトと通信できるようになります。

したがって、ユーザーの行動を記録することが不可欠です。ユーザーのすべての操作とアクセス行動を記録する必要があります。これは、クローラーの分析と処理の基礎となります。

3. 管理の観点から高頻度の行為を厳しく取り締まります

実際には、データの発掘を目的として実行されないクローラ プログラムも多数存在します。 Web サイトのコンテンツ。手動による収集と分類作業を容易にするためだけに、このタイプのクローラの動作は、一般に手動による閲覧の頻度よりも高くなりますが、ハイエナのような高頻度のクローラよりは大幅に低くなります。このタイプのクローラの動作は、次のような可能性があります。それを無視します。将来また会えるように、生活の中で一線を画しておきましょう。

ただし、Web サイトサーバーの動作に影響を与える高頻度のクローラーの動作には対策を講じる必要があります。ユーザー情報と IP 情報を組み合わせて、関連するユーザーまたは IP を処理します。

4. 契約における権利の宣言

ウェブサイトの所有者は、ウェブサイト契約またはユーザー契約で、通常の閲覧、アクセス、およびデータ取得が許可されていることを宣言する必要があります。 . 、高頻度で、ウェブサイトサーバーの安定性を脅かす場合、当社はさらなる処理を行う権利を留保します。

以上がPython アンチクローラーの知識ポイントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。