V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
aaa0009
V2EX  ›  问与答

大家是如何验证百度蜘蛛是百度蜘蛛的,而不是冒充的?

  •  
  •   aaa0009 · 2016-08-11 09:20:31 +08:00 · 4891 次点击
    这是一个创建于 3032 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如, 通过 ip 180.76.15.20 可以得到 baiduspider-180-76-15-20.crawl.baidu.com
    按照道理,还需要反向验证下,但是, baiduspider-180-76-15-20.crawl.baidu.com 得不到 180.76.15.20 。

    这样,百度蜘蛛是不是就可以伪造了?
    15 条回复    2016-08-11 23:38:32 +08:00
    xiaoding
        1
    xiaoding  
       2016-08-11 09:39:09 +08:00
    http://baidu.com/search/spider.htm
    5. 如何判断是否冒充 Baiduspider 的抓取?
    建议您使用 DNS 反查方式来确定抓取来源的 ip 是否属于百度,根据平台不同验证方法不同,如 linux/windows/os 三种平台下的验证方法分别如下:
    5.1 在 linux 平台下,您可以使用 host ip 命令反解 ip 来判断是否来自 Baiduspider 的抓取。 Baiduspider 的 hostname 以 *.baidu.com 或 *.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp 即为冒充。
    $ host 123.125.66.120
    120.66.125.123.in-addr.arpa domain name pointer
    baiduspider-123-125-66-120.crawl.baidu.com.

    host 119.63.195.254
    254.195.63.119.in-addr.arpa domain name pointer
    BaiduMobaider-119-63-195-254.crawl.baidu.jp.

    5.2 在 windows 平台或者 IBM OS/2 平台下,您可以使用 nslookup ip 命令反解 ip 来 判断是否来自 Baiduspider 的抓取。打开命令处理器 输入 nslookup xxx.xxx.xxx.xxx ( IP 地 址)就能解析 ip , 来判断是否来自 Baiduspider 的抓取, Baiduspider 的 hostname 以 *.baidu.com 或 *.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp 即为冒充。

    5.3 在 mac os 平台下,您可以使用 dig 命令反解 ip 来 判断是否来自 Baiduspider 的抓取。打开命令处理器 输入 dig xxx.xxx.xxx.xxx ( IP 地 址)就能解析 ip ,来判断是否来自 Baiduspider 的抓取, Baiduspider 的 hostname 以 *.baidu.com 或 *.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp 即为冒充。
    rayhome1987
        2
    rayhome1987  
       2016-08-11 09:42:55 +08:00
    百度蜘蛛有专门的段,注意收集一下,维护一个白名单即可
    notgod
        3
    notgod  
       2016-08-11 09:49:22 +08:00   ❤️ 2
    反向记录 是没什么用了现在

    如果有这个需求 为提高效率 一般会记录 Spider 的 IP 段做匹配
    这样性能高 做反向验证匹配太耗资源了
    而且也不是每个公司的爬虫 每个反向记录都是有效的解析
    尤其国内很多公司没 ASN IP 都是电信的 没配反向解析

    百度好像没提供 IP 池 Google 是有提供的

    伪造反向解析记录 很容易的 因为没什么用
    如果你是自有 ASN 和 IP 分配权限 可以随便定义反向记录
    但是如果你租服务器买 IP 添加反向记录 一般会要求你先解析 验证成功后才给你添加

    这个我利用过是 N 年前 德国租小机房的机柜 给外贸客户发垃圾邮件
    每个机柜配垃圾机器 + 1000+IP/每机柜 最高一天能发亿级
    那时候反垃圾邮件还没现在这么强大 在加上德国的小机房缺生意
    谈好不封机器 对群发睁只眼闭只眼
    后来不行了 一发 Spam 就封端口 小机房说在发上游要取消接入 不然罚款罚死
    aaa0009
        4
    aaa0009  
    OP
       2016-08-11 10:14:50 +08:00
    @xiaoding 这种方法我提到了,关键是反向验证:由域名得到 ip ,百度的都不行。
    aaa0009
        5
    aaa0009  
    OP
       2016-08-11 10:19:38 +08:00
    @notgod 耗资源不是问题,每个 IP 一天只查询一次,然后就进缓存了。看来只能做百度蜘蛛白名单了。然后其他的蜘蛛做双向验证。搜狗都有方向验证,百度却没有。 360 更 low ,蜘蛛域名都没的。
    aaa0009
        6
    aaa0009  
    OP
       2016-08-11 10:31:44 +08:00
    @notgod 伪造 ip 指向的域名成本高不高? 比如我有 ip33.2.3.32, 如果要指向 baiduspider-33-2-3-32.crawl.baidu.com
    notgod
        7
    notgod  
       2016-08-11 10:44:32 +08:00
    @aaa0009
    你没弄明白 这个不是伪造
    解析记录有 2 种 一种正向 一种反向
    反向的意思 就是 IP 解析到域名
    这个前提是你要有这个权限 就是有 ASN 并且 IP 是你自己的 或者运营商愿意提供权限 (正常情况下是不允许 管理机构有要求) 不然你解析什么?
    这个和正向一样 也是 DNS 解析记录 只是反过来了
    你域名解析到 IP 域名最少你要有管理权限是吧? 一个道理
    你域名有解析权限了 也可以解析到任意 IP 比如百度? 比如谷歌? 还是一个道理 反向解析也一样

    问题在于这个 DNS 记录 是需要全网同步的
    不然别人 host nslookup 是没结果的

    问题就在这里 这些都是有规范的
    https://www.ripe.net/manage-ips-and-asns/db/support/configuring-reverse-dns
    看 Ripe 的说明 如何配置
    UnisandK
        8
    UnisandK  
       2016-08-11 11:24:17 +08:00
    @notgod 支持修改的 IDC 还是不少的



    UnisandK
        9
    UnisandK  
       2016-08-11 11:25:12 +08:00
    @UnisandK 下边的图贴错地址了槽
    UnisandK
        10
    UnisandK  
       2016-08-11 11:29:00 +08:00
    @UnisandK 哦没贴错,看错了。。
    ZE3kr
        12
    ZE3kr  
       2016-08-11 12:56:38 +08:00 via iPhone
    @UnisandK 你要是有 ip block ,那就更是随便设置了, ns 可以设置为自己服务器,然后自己可以随便解析
    aaa0009
        13
    aaa0009  
    OP
       2016-08-11 13:37:18 +08:00
    @rayhome1987 这个不准哈, 180.76.15.20 这个也是 baidu IP ,就没有。
    julyclyde
        14
    julyclyde  
       2016-08-11 23:38:02 +08:00
    @notgod 正经做爬虫的肯定会老老实实做反向解析。你觉得这点儿事百度会摆不平电信么?
    julyclyde
        15
    julyclyde  
       2016-08-11 23:38:32 +08:00
    PTR 记录管理比 A 严格多了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.