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

虎嗅网这个反爬虫插 cookies 是什么原理?来个 js 大神

  •  
  •   lhx2008 · 2017-12-07 17:28:51 +08:00 · 2418 次点击
    这是一个创建于 2337 天前的主题,其中的信息可能已经有所发展或是发生改变。
    浏览器没 cookie 的话会执行一个 js 插一个 cookies,然后刷新页面,才出正常的页面。

    暂时是用 selenium 拿 cookies 了,

    但是插 cookies 的 js 方法不知道怎么分析,开 F12 还会被卡住,打断点好像打不了,是不是只能在外部抓包了,感觉很神奇。
    2 条回复    2017-12-07 21:06:07 +08:00
    xiaocsl
        1
    xiaocsl  
       2017-12-07 20:17:12 +08:00   ❤️ 1
    简单的说一下哈,并不专业.
    开发者工具断点,并不耽误拿到代码,点到 Network 标签,将 Response 复制出来就行了.
    看到一堆 ASCII 码,直接先去试 uglifyjs(有在线的: https://www.css-js.com/ ) 格式化一下试试, arg1 里应该存了不少关键代码和数据.
    整体来说代码不多,主要就那两三个函数应该还是比较容易理清的.


    不过脑洞开的挺大,以前自己没想到过,挺有意思的.学到了一个骚操作.

    打开开发者工具就不工作,应该是用 debugger 加 setTimeout 来判断开发者工具是否被打开,主要是代码混淆把 debugger 那句代码藏的深了一些.
    zenxds
        2
    zenxds  
       2017-12-07 21:06:07 +08:00   ❤️ 1
    估计原理跟这个差不多

    var hasDebugger = false
    var start = new Date()

    try {
    // 新建一个匿名函数,这样 debugger 得不到任何信息
    (function() {}).constructor('debugger')()
    if (new Date() - start > 200) {
    hasDebugger = true
    }
    } catch(e) {}

    alert(hasDebugger)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1025 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:40 · PVG 07:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.