前置き
nginxでGooglebotの検証という記事を書きましたが、すぐ後にGoogleがGooglebotの範囲を公開しました。BingbotについてもVerify Bingbotの下の方で公開していることに気付き(Googlebotと同時期に公開した模様)それに合わせてシンプルに簡易検証ができるようになったので更新します。
続きを読むnginxでGooglebotの検証という記事を書きましたが、すぐ後にGoogleがGooglebotの範囲を公開しました。BingbotについてもVerify Bingbotの下の方で公開していることに気付き(Googlebotと同時期に公開した模様)それに合わせてシンプルに簡易検証ができるようになったので更新します。
続きを読むFacebookと傘下が死んでいたようですがこの記事の
Internet providers usually update their DNS records every few hours, but they can take several days to fully propagate.
はちょっと何言ってるか良く分かりませんでした。他人のRRをプロバイダがアップデートしている??? いずれにせよ全部の権威サーバ[abcd].ns.facebook.comがAS32934の中にいてサービスを提供しているサーバごとBGPテーブルから消え去ったのでネガティブレスポンスのキャッシュではなくてサーバに到達できないというエラーのキャッシュになります。キャッシュが1000くらい直列になった謎沼の底でもない限り数日かかることはないかと思います。
それはともかく本題のGooglebotの検証方法は公式には
となっています。User-agentも逆引き(rDNS, PTR RR)も詐称したい側が容易に詐称可能です。.google.com や .googlebot.com のA RRやAAAA RRはGoogleの権威サーバを乗っ取るかどこぞのキャッシュサーバを攻略しないといけないため通常は正しい、GoogleはUser-agent詐称しない、という前提のもと検証できることになります。
Apache HTTPDでは HostnameLookups Double と SetEnvIf を組み合わせて検証できます。nginxではNginx HTTP rDNS moduleを使ってできそうです。パッケージになっているディストリビューションが少ないので、配置しなければいけないサーバが多い場合はテスト目的以外で使うにはちょっと躊躇します。
そこでFCrDNS部分をざくっと省略版にしてAS番号で処理することにします。