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

2017-12-07 17:28:51 +08:00
 lhx2008
浏览器没 cookie 的话会执行一个 js 插一个 cookies,然后刷新页面,才出正常的页面。

暂时是用 selenium 拿 cookies 了,

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


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

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

var hasDebugger = false
var start = new Date()

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

alert(hasDebugger)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/412867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX