V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twofox
V2EX  ›  程序员

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

  •  
  •   twofox · 115 天前 · 1278 次点击
    这是一个创建于 115 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

    恶心一点的可以考虑加验证码
    twofox
        11
    twofox  
    OP
       115 天前
    @westoy
    @XSDo 法务和发公告确实是成本最低的=.=


    @aapeli 还是会被破解,而且客户不愿意加成本
    Cmdhelp
        12
    Cmdhelp  
       115 天前
    试试 google 的验证码
    googlefans
        13
    googlefans  
       115 天前
    想爬你 是封不住的
    留好证据 起诉
    ggvm
        14
    ggvm  
       114 天前
    这个从技术层面来讲,比较难以防范爬虫。

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

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

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

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

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

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

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

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

    主动出击:

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

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

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