V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
twofox
V2EX  ›  程序员

如何禁止公众号爬取自己的系统数据?

  •  
  •   twofox · 2023-02-13 16:52:30 +08:00 · 1662 次点击
    这是一个创建于 674 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:有个公众号,提供了机器人来访问我司的系统数据。也就是让用户自己手动输入账户密码,然后通过用户的账号来爬取数据放到他们的数据库。法务已经在尽量处理,但是从技术的角度来看,如何禁止此类的机器人呢?

    试过网易易盾,无效,被破解了。

    有没有产品是通过分析用户访问行为来进行封禁的。

    例如有一些页面,正常用户想要进行查询,必须得先请求一定的静态资源、前置数据。如果是爬虫的话,可能不会进行这些行为,那就把这些用户或者 ip 给封禁了。

    我看 AWStats 、Webalizer 、GoAccess 这三个产品好像都不具备这种功能

    15 条回复    2023-02-14 11:40:44 +08:00
    lhlxx2010
        1
    lhlxx2010  
       2023-02-13 16:54:58 +08:00
    啥公众号?能了解一下吗?
    twofox
        2
    twofox  
    OP
       2023-02-13 16:58:06 +08:00
    @lhlxx2010 这个不好透露,会泄露隐私=.=
    不过他就是针对我们公司的产品做的。不适用其他的网站
    statement
        3
    statement  
       2023-02-13 17:04:43 +08:00
    公众号实名的,破坏计算机信息系统罪 直接上门抓好了 有点底线就提前警告一下
    twofox
        4
    twofox  
    OP
       2023-02-13 17:10:38 +08:00
    @statement 这个是法务的事情了,法务在处理。但是他们反馈说好像想他们关掉并不容易。所以才来请教一下,如何从技术手段防止这种爬虫
    kkk9
        5
    kkk9  
       2023-02-13 17:20:11 +08:00
    加个 js ,js 检测真机环境然后悄悄回服务器 log ,true 的 log 则 API 返回真数据,其他的时候返回脏数据,偷偷上线还可以检测一下哪些用户用他们的爬虫
    twofox
        6
    twofox  
    OP
       2023-02-13 17:22:42 +08:00
    @kkk9 具体咋检测,UA 不是可以被伪造的嘛
    XSDo
        7
    XSDo  
       2023-02-13 17:29:54 +08:00
    挂个公告 封号就行了,我记得之前有的驾考类 app 诱惑考生在它们 app 查考试成绩,然后就偷偷用用户的账号来爬 12123 系统的数据,人家都是直接封号的,封多了,就没有普通用户给号它们用了
    westoy
        8
    westoy  
       2023-02-13 17:34:42 +08:00
    别封啊, 先识别好特征, 然后信息投毒

    不过其实唯一的有效办法就是法务

    你技术手段再升级, 只要是公开提供的信息, 也挡不住人家招个兼职去人肉维护啊
    aapeli
        9
    aapeli  
       2023-02-13 17:41:06 +08:00
    验证码?滑动验证? 验证是否是机器人.
    retrocode
        10
    retrocode  
       2023-02-13 17:44:04 +08:00
    最简单的就是法务了, 封号不建议, 你得先问下你们法务看用户协议里有没有提到相关的操作和所有权, 要是鹅厂类条款直接封号应该是没问题的

    恶心一点的可以考虑加验证码
    twofox
        11
    twofox  
    OP
       2023-02-13 17:45:04 +08:00
    @westoy
    @XSDo 法务和发公告确实是成本最低的=.=


    @aapeli 还是会被破解,而且客户不愿意加成本
    Cmdhelp
        12
    Cmdhelp  
       2023-02-13 17:55:05 +08:00
    试试 google 的验证码
    googlefans
        13
    googlefans  
       2023-02-13 18:46:17 +08:00
    想爬你 是封不住的
    留好证据 起诉
    ggvm
        14
    ggvm  
       2023-02-13 23:45:47 +08:00
    这个从技术层面来讲,比较难以防范爬虫。

    启用一个有头的浏览器来爬,例如 pyppeteer selenium Playwright 这些东西,可以做到几乎和正常用户使用浏览器来访问的效果。

    防止用户把密码交给第三方托管,可以考虑使用一些技术手段,随便谈谈我的想法,不一定全面,仅供参考:

    - 在查询中加入一些类似于二次验证的挑战,识别并非本人在访问。

    例如发起短信验证码,如果无法成功输入验证码,即锁定账号。

    - 记录用户的 IP 所在地,如果发现并非常用所在城市 IP ,即要求短信验证码

    - 用户初次注册和登陆时,在客户端放一个长期的 cookie ,后续访问带上该 cookie 。后续的登陆均不产生 cookie ,识别其他客户端访问。

    - 用户初次登陆时,记录浏览器指纹,如果遇到不同的浏览器指纹,要求验证。

    - 要求用户访问时必须用短信登陆,让客户无法交出密码

    主动出击:

    - 向对方提交大量我方标记的账号,通过这些账号的访问,定位对方的 IP 地址,封掉这些 IP 地址。

    反扒基本上就是对抗的活,代价也许太多。

    思路:提高违法成本 ,不追求彻底干死爬虫
    iPc666
        15
    iPc666  
       2023-02-14 11:40:44 +08:00
    登录了直接拿到 Cookie ,你那些措施就白费了,最简单的方法就是 API 接口对称加密,加密方法进行代码混淆,增加对方抓取请求难度。再套上 Cloudfare 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5412 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:01 · PVG 17:01 · LAX 01:01 · JFK 04:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.