各フロントエンド大手の反爬虫策

2380 ワード

1.はじめに
1枚のページについては、構造がよく、内容がはっきりしていることを望んでいます.そうすれば、検索エンジンが正確に認識することができます.逆に、電子商取引サイトの取引額、教育サイトのテーマなど、内容が簡単に入手されることを望んでいない光景もあります.これらの内容は、往々にして製品の生命線であり、効果的に保護しなければならないからだ.これが爬虫類と反爬虫類という話題の由来です.
2.一般的な反爬虫策
しかし、世界には虫に完璧に逆らうサイトはありません.
ページがユーザーの前で正常に表示され、爬虫類の機会を与えないようにするには、実物とロボットを識別する必要があります.そのため、エンジニアたちは様々な試みを行いました.これらの戦略の多くはバックエンドに使用され、現在の比較的通常の単有効な手段でもあります.例えば、
  • User-Agent+Referer検出
  • アカウント及びCookie検証
  • 認証コード
  • IP制限頻度
  • 爬虫類は無限に実物に近づくことができます.例えば、
  • chrome headlessまたはphantomjsは、ブラウザ環境
  • をシミュレートするために使用される.
  • tesseract識別検証コード
  • 代理IP淘宝は
  • を買うことができます
    だから100%の反爬虫策は?存在しない.もっと多いのは体力の仕事で、難易度の問題です.
    しかし、フロントエンドエンジニアとして、ゲームの難易度を増やして、xin意(bing)思(kuang)の反爬虫策を設計することができます.
    3.先端と反爬虫類
    3.1 FONT-FACEパッチワーク
    例:猫眼映画
    猫眼映画では、興行収入のデータに対して、純粋な数字ではない.ページはfont-faceを使用して文字セットを定義し、unicodeを介して表示をマッピングします.すなわち、画像認識を除いて、数字を認識するには、文字セットを同時に這い出さなければならない.
    また、ページをリフレッシュするたびに、文字セットのurlが変化し、登りコストが増加するのは間違いありません.
    3.2 BACKGROUNDパッチワーク
    例:美団
    fontの戦略と似ていて、美団ではbackgroundパッチワークが使われています.数字は実は画像で、backgroundオフセットによって異なる文字が表示されます.
    また、ページによって、画像の文字のソートにも違いがあります.しかし、理論的には0-9と小数点を生成するだけです.
    3.3文字挿入
    例:微信公衆番号の文章
    一部の微信公衆番号の文章には、様々な謎の文字が挿入され、スタイルを通じてこれらの文字を隠している.この方法は驚くべきことだが...あまり認識や濾過が難しくなく、もっとよくできるが、脳の穴だろう.
    ところで、私の携帯電話の通信量は誰に清算してもらえますか?
    3.4擬似要素非表示
    例:自動車の家
    自動車の家では、肝心なメーカー情報を、偽要素のcontentにした.これも一つの考え方です:ホームページを登って、cssを解析しなければならなくて、偽要素のcontentを手に入れる必要があって、これは爬虫類の難易度を高めました.
    3.5要素位置決めカバー式
    どこへ行きますか.
    また、数学が好きな人はどこへ行くのか、4桁の航空券の価格について、まず4つのiラベルでレンダリングし、2つのbラベルで絶対的な位置ずれ量を特定し、わざと間違っているiラベルをカバーし、最後に視覚的に正しい価格を形成します...
    これは爬虫類がcssを解析するのはまだだめで、数学の問題をしなければならないことを示しています.
    3.6 IFAMME非同期ロード方式
    例:網易雲音楽
    網易雲音楽ページが開くと、htmlソースコードにはiframeがほとんどなく、srcは空白です.about:blankです.次にjsが実行を開始し、ページ全体のフレームワークをiframeに非同期で詰め込みました...
    しかし、この方式がもたらす難易度は大きくなく、非同期とiframe処理で曲がっただけで(あるいは他の原因があり、完全に反爬虫類に基づいているわけではありません)、seleniumでもphantomでも、iframeのcontent情報を入手できるAPIがあります.
    3.7文字分割式
    例:全ネットエージェントIP
    エージェントIP情報を示すページでは,IPの保護にも苦労する.
    彼らはまずIPの数字と記号をdomノードに分割し、真ん中に人を惑わす数字を挿入し、爬虫類がこの戦略を知らなければ、自分が成功して数値を手に入れたと思っている.しかし、爬虫類が気づいたら、よく解決します.
    3.8文字セット置換
    例:サイドをどこに移動するか
    同じように爬虫類を騙すのはどこへ行く移動版ですか.
    htmlには3211と書いてあるのに、視覚的には1233が展示されています.文字セットを再定義し、3と1の順序がちょうど入れ替わった結果...
    転載:http://litten.me/2017/07/09/prevent-spiders/