这种前端反爬虫方案是否能阻止大多数新手破解? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Richard14
V2EX    问与答

这种前端反爬虫方案是否能阻止大多数新手破解?

  •  
  •   Richard14 2021-05-04 04:54:35 +08:00 4148 次点击
    这是一个创建于 1620 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:保护应用核心数据,目前业务上只有数据值钱。

    具体做法:前端展示页面使用 canvas 渲染,不能直接通过 html 读取,数据传递使用自定的对称加密协议,前端有一个混淆过的解密代码。另外添加了一个 F12 检测工具,检测到控制台开启会强制刷新页面并讲用户添加至黑名单。

    问一下站里爬虫大佬怎么看,这套方案有没有什么漏洞,添加控制台检测之后,是不是只有通过黑产专用浏览器才能调试了,这样是否能过滤掉绝大多数非黑产专业的爬虫尝试?

    32 条回复    2021-05-06 07:58:35 +08:00
    shoaly
        1
    shoaly  
       2021-05-04 05:39:36 +08:00
    估计没啥用, 专业的人找到 那一行解密代码 就可以开始搞事情了
    LeeReamond
        2
    LeeReamond  
       2021-05-04 05:54:23 +08:00
    学习一个,不让开控制台的话不会调试 js 。
    crab
        3
    crab  
       2021-05-04 06:00:55 +08:00   1
    Override 或者 油猴 能直接解决那个检查控制台。 还不如发现爬虫不提醒,直接输出半真半假数据。
    freak118
        4
    freak118  
       2021-05-04 06:38:39 +08:00
    混淆过 就看不出了吗
    iBugOne
        5
    iBugOne  
       2021-05-04 06:46:55 +08:00
    只要有人发现你这个 F12 检测到之后会干什么,他就可以在这个地方(事件触发)下断点来停掉你的代码。甚至还可以开一个新标签页,开好 F12 下好断点再导航到你的页面。

    总之纯前端肯定不靠谱
    pabupa
        6
    pabupa  
       2021-05-04 07:15:21 +08:00 via Android
    这种情况就要用钱来区分用户。
    pabupa
        7
    pabupa  
       2021-05-04 07:16:16 +08:00 via Android
    @pabupa vip0 ~ vip999 搞起来
    xingshu1990
        8
    xingshu1990  
       2021-05-04 08:11:56 +08:00
    58 字体反爬,
    抖音加密。
    这两个反爬虫技术,目前能阻止大多数新手破解。
    raaaaaar
        10
    raaaaaar  
       2021-05-04 09:42:44 +08:00 via Android
    要看新手的定义了,我就写过几行 html,js,有代码混淆了我就不会爬了
    Quarter
        11
    Quarter  
       2021-05-04 09:49:41 +08:00 via iPhone
    这一套弄下来好复杂啊
    ThirdFlame
        12
    ThirdFlame  
       2021-05-04 10:06:48 +08:00
    对付新手足够了
    Lemeng
        13
    Lemeng  
       2021-05-04 10:26:50 +08:00
    有点意思
    alexkkaa
        14
    alexkkaa  
       2021-05-04 10:43:04 +08:00 via Android
    不需要搜索引擎的你随便搞, 需要蜘蛛来爬的你这不是作死吗
    opengps
        15
    opengps  
       2021-05-04 13:30:15 +08:00
    用免费来提供普通用户
    用付费来提供给高级用户
    这样将来即使遭遇了同行抄袭之类的,最差最差也有个付费的地方
        16
    imn1  
       2021-05-04 14:04:59 +08:00   1
    你要想清楚是你想过滤掉用户,还是想 被人家 过滤掉?

    F12 进黑名单,这个除非你写进 ToS,不然比骂某人封号更狠,完全是甲方意愿行为(不受法律保护的)
    Jooooooooo
        17
    Jooooooooo  
       2021-05-04 14:17:49 +08:00
    可以让暴击机关抓他们
    HankLu
        18
    HankLu  
       2021-05-04 14:31:42 +08:00
    码农何苦为难码农?
    Richard14
        19
    Richard14  
    OP
       2021-05-04 14:33:34 +08:00
    @imn1 我们是小公司,反爬虫是老板的想法,我不是法务,不过应该是可以写进服务条款的。我个人之前搜索过一些主流应用的服务条款资料,我觉得开控制台可以算作是以技术手段尝试破解服务,为了保护服务应当禁止,如果写进服务条款,应该也是合法合理的。再说正常用户正常使用谁会开启控制台呢。
    Richard14
        20
    Richard14  
    OP
       2021-05-04 14:34:24 +08:00
    @HankLu 断人财路如杀人父母啊,我们核心数据都被窃取的话类似父母被杀,为何不难为?
    wdlth
        21
    wdlth  
       2021-05-04 14:46:58 +08:00
    感觉封控制台没什么意义,既然全页都是 Canvas 那人家根本都不需要去看 DOM 。你这套方案感觉让爬虫更方便了,因为人家只需要抓包看一下然后跑一下 JS 。
    imn1
        22
    imn1  
       2021-05-04 14:46:58 +08:00
    @Richard14 #19
    所以说贵司或者说你不知道怎么想的
    “我觉得开控制台可以算作是以技术手段尝试破解服务” 开控制台和破解构成必然的关系么?

    从#20 的回复可见,逻辑不清
    人家只是说码农,码农开控制台你就判定“窃取核心数据”

    我开控制台的时候多了,但恰恰跟你的判定相反,我是要看看这个网站有没有“窃取用户的隐私”
    隐私是用户的核心数据没错吧,所以我说你这个只能算纯粹的甲方条款,只许州官放火?
    12101111
        23
    12101111  
       2021-05-04 14:55:44 +08:00
    @Richard14 按 del 键误触 F12 怎么办? 也封号然后把锅推给售后? 况且真要破解的遇到这种用小伎俩很好绕过啊. 而且我记得 chrome 和 firefox 的打开控制台的 api 不一样啊, 要是用别的浏览器(比如 webkit)岂不是就无效了

    canvas 这个遇到 ocr 怎么办?
    yksoft1test
        24
    yksoft1test  
       2021-05-04 15:53:26 +08:00
    把解密、写 canvas 的逻辑用 C 语言写编译成 WebAssembly ?
    或者干脆整个程序都用 C 语言写,网络部分用 WebSocket 连 socket,前端直接自己用 WebGL 渲染?
    yksoft1test
        25
    yksoft1test  
       2021-05-04 15:55:06 +08:00
    @12101111 30Hz 高速闪烁让单次截图截不到完整文字?
    Blanke
        26
    Blanke  
       2021-05-04 20:16:09 +08:00
    没用,一般做法是登录用户买 vip 能看更多数据,然后加频率限制
    redwing2003
        27
    redwing2003  
       2021-05-04 22:05:20 +08:00
    没用,我们现在习惯录屏 OCR 解决。
    强的人还不一定用爬虫呢,直接渗透。
    F12 是常用的工具,你不给人开,安全部门还有理由怀疑你想网页投毒。
    locoz
        28
    locoz  
       2021-05-04 23:42:41 +08:00 via Android
    没啥用,单从描述的这些来看的话,代码里没有埋暗坑或者一些需要特殊手段才能解决的难点,也就只能挡一挡那种看了点到处都有的教程的水平的人,有实际工作(且内容会涉及 JS 逆向)几个月的人其实都能搞得定,无非就是时间长短而已。
    Yunen
        29
    Yunen  
       2021-05-05 04:46:21 +08:00
    SEO 与反爬不可兼得,若是不需要 SEO 的站,倒还可以通过其他一些手段来反爬,如字体反爬、数据加密配 JS 混淆等,当然这些几乎都有可绕过方式,无非就是增加爬虫的成本,最后就是看哪方先放弃罢了
    Zy143L
        30
    Zy143L  
       2021-05-05 10:11:35 +08:00 via Android
    大不了,找人力资源,看网页,人工录入
    反正人力不值钱
    domodomo
        31
    domodomo  
       2021-05-05 16:29:49 +08:00
    这就跟斗鱼加密视频流地址一样,除了麻烦点毫无意义,甚至有点好笑。
    Richard14
        32
    Richard14  
    OP
       2021-05-06 07:58:35 +08:00
    @imn1 开玩笑了吧朋友,我是一个网站又不是 chrome 插件,运行在严格隔离环境里,我有什么权限“窃取用户隐私”,你这说法也是搞笑,不知道在想什么。不管你怎么胡诌,普通用户使用网页就是不需要开控制台,你既然能辩护这种行为,说明你不是核心数据被窃取的一类人,很可能是反过来有窃取数据需求才会这么说吧。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     957 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:23 PVG 03:23 LAX 12:23 JFK 15:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86