与facebook.com脚本尝试后,我注意到,几分钟的它并没有让我连接到facebook.com。 这件事发生超过一次,所以我怀疑,Facebook并不想惹使用userscripts他们的代码。
堆栈溢出问题, 一个网站可以知道,如果我运行userscript? 回答多种方式网站可以检测脚本。
现在我想知道我怎么可以欺骗一个网站,没有发现我可能正在运行的脚本。 有没有办法知道我的userscript HTML的变化在网站上触发?
与facebook.com脚本尝试后,我注意到,几分钟的它并没有让我连接到facebook.com。 这件事发生超过一次,所以我怀疑,Facebook并不想惹使用userscripts他们的代码。
堆栈溢出问题, 一个网站可以知道,如果我运行userscript? 回答多种方式网站可以检测脚本。
现在我想知道我怎么可以欺骗一个网站,没有发现我可能正在运行的脚本。 有没有办法知道我的userscript HTML的变化在网站上触发?
对于Firefox和Chrome也没有灵丹妙药,以防止被检测,它是一个过程,一种艺术...
该网站将检测脚本的3 原则方法是:
失序或过于频繁的AJAX请求。
更改页面的代码(HTML,JS全球,甚至CSS)。
不自然的鼠标或键盘操作。
请参见“一个网站可以知道,如果我运行userscript?” 欲获得更多信息。
对策:
对于AJAX请求你的脚本,使:
对于您对网页的代码修改:
该页面完全可以在本地自行处理这些,用它自己的JavaScript,或者它也可以发送回的状态或代码片段到服务器。
拦截和替换页面的JavaScript。 像的NoScript,RequestPolicy,防火墙和代理工具可用于阻止的JS。
然后使用Greasemonkey的添加您编辑的页面的JS版本。 Greasemonkey会运行,即使所有页面的JS是禁用的。
如果页面手机状态回家,并响应脚本的变化,拦截状态更改和替换的消息。 (如果你使用以前的方法这是没有必要的。)您将需要一个自定义的防火墙,代理服务器或路由器来做到这一点。
对于您触发事件(鼠标点击,填写字段等):
click
事件,你可能需要一个mouseover
, mousedown
, mouseup
, mouseout
序列。 重要!
在您对抗试图阻挠userscripts网站的罕见事件,它就像一场战争。 网站管理员可以适应你在做什么,和环境可以不断地变化。 所以脚本这样的网站是一个持续的过程。
你的身边 - 脚本在用户端执行。 因此,网站的服务器代码无法知道,如果你运行任何与否。
有两件事情但是要注意:
否则,如果您生成完全一样的反应,不以全局访问的环境留下痕迹,这是不可能的网站告诉如果你使用userscript与任一服务器或客户端检查。