例如,Facebook.com是否可以在浏览器上运行版本控制脚本,并确定我是否正在使用脚本运行更改的HTML代码?
可以使用一个脚本来完成此操作,该脚本可以读取缓存中的HTML代码并生成某种哈希标签,然后将该哈希标签发送回服务器,并与发送给客户端的代码进行比较吗?
是的,从理论上讲,站点可以推断出各种情况下脚本的存在。
这不是万无一失的,通常对于站点的可忽略的“威胁”来说是太多麻烦。(然后,一些网站管理员可能会对这种事情感到迷恋。;)
某些方法取决于脚本的工作方式(无特定顺序):
游戏或拍卖网站可以监视“竞标”点击的时间(速度和规律性)。
站点可以AJAX支持<script>节点数的计数,以寻找更多功能。
<script>
同样,网站可以AJAX支持页面的任何或所有内容,并将其与期望值进行比较。
可以记下额外的AJAX调用或不满足隐藏要求的AJAX调用(并使其看起来成功)。
如果脚本以unsafeWindow正确(错误)的方式使用,则页面可以检测到该脚本,甚至劫持(轻微)提升的特权。
unsafeWindow
可以检测到没有鼠标悬停事件之前的“点击”。我实际上已经看到了这种用法在野外使用。
页面的javascript通常可以检测到脚本生成的点击(等)与用户生成的点击不同。
最终,优点是对用户脚本编写者有利。网页采取的任何对策都可以在用户端进行检测并阻止。即使是自定义的,必需的插件或必需的硬件加密狗,也可以由熟练且有积极性的用户来破坏。