当前位置: 首页 > 面试题库 >

网站可以知道我是否正在运行用户脚本吗?

柴英博
2023-03-14
问题内容

例如,Facebook.com是否可以在浏览器上运行版本控制脚本,并确定我是否正在使用脚本运行更改的HTML代码?

可以使用一个脚本来完成此操作,该脚本可以读取缓存中的HTML代码并生成某种哈希标签,然后将该哈希标签发送回服务器,并与发送给客户端的代码进行比较吗?


问题答案:

是的,从理论上讲,站点可以推断出各种情况下脚本的存在。

这不是万无一失的,通常对于站点的可忽略的“威胁”来说是太多麻烦。(然后,一些网站管理员可能会对这种事情感到迷恋。;)

某些方法取决于脚本的工作方式(无特定顺序):

  1. 游戏或拍卖网站可以监视“竞标”点击的时间(速度和规律性)。

  2. 站点可以AJAX支持<script>节点数的计数,以寻找更多功能。

  3. 同样,网站可以AJAX支持页面的任何或所有内容,并将其与期望值进行比较。

  4. 可以记下额外的AJAX调用或不满足隐藏要求的AJAX调用(并使其看起来成功)。

  5. 如果脚本以unsafeWindow正确(错误)的方式使用,则页面可以检测到该脚本,甚至劫持(轻微)提升的特权。

  6. 可以检测到没有鼠标悬停事件之前的“点击”。我实际上已经看到了这种用法在野外使用。

  7. 页面的javascript通常可以检测到脚本生成的点击(等)与用户生成的点击不同。

最终,优点是对用户脚本编写者有利。网页采取的任何对策都可以在用户端进行检测并阻止。即使是自定义的,必需的插件或必需的硬件加密狗,也可以由熟练且有积极性的用户来破坏。



 类似资料:
  • 问题内容: 我刚刚开始使用node.js,并且对Python有一定的经验。在Python中,我可以检查变量是否设置为,是否可以直接运行我的脚本。在那种情况下,我可以运行测试代码或以其他方式直接使用该模块。 node.js中有类似的东西吗? 问题答案: 您可以用来确定当前脚本是否由另一个脚本加载。 例如 : : 运行将输出: 运行将输出:

  • 问题内容: pm2是否可以运行npm start脚本,还是只需要运行 所以在发展中 然后在pm2的生产环境中运行类似 有一个等效的方法可以做到这一点: 问题答案: PM2现在支持npm start: 要将名称分配给PM2进程,请使用以下选项:

  • 问题内容: 每次我运行使用Flask-SQLAlchemy的应用程序时,都会收到以下警告,提示该SQLALCHEMY_TRACK_MODIFICATIONS选项将被禁用。 我试图找出此选项的作用,但是Flask-SQLAlchemy文档尚不清楚该跟踪的用途。 · 如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。

  • 问题内容: 当使用* nix外壳程序(通常是bash)时,我经常产生一个子外壳程序,可以用它处理一个小任务(通常在另一个目录中),然后退出该外壳程序以继续父外壳程序的会话。 偶尔,我会失去对运行嵌套shell还是在顶层shell中的跟踪,并且会不小心产生其他的子shell或错误地退出顶层shell。 。 有没有一种简单的方法可以确定我是否在嵌套shell中运行?还是我以完全错误的方式解决问题(通过

  • 问题内容: 查找进程aa.sh是否正在运行的linux命令是什么。ps命令似乎不起作用,并且不显示Shell脚本名称。 请指教。 问题答案: 检查一下

  • 问题内容: 我喜欢javascript,所以当我听说基于V8的Javascript运行时Node.js时,我感到非常兴奋。我更喜欢用Javascript编写外壳脚本。我的问题是:如何在不调用的情况下运行脚本?在我编写完脚本之后,它会尝试作为bash脚本而不是Node.js javascript运行。 问题答案: 使您当前的外壳开始bash的原因是您当前的外壳(bash?)不知道如何处理file.j