微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何禁止书签运行?

如何解决如何禁止书签运行?

在我的网站上,我想阻止运行小书签(通过单击现有书签或在URL栏中键入JavaScript,例如 javascript:alert(1)),我不会不想在我的网站上运行任何自定义代码。可能没有一种本机的方法,但是有没有一种“ hack”功能可以禁止执行小书签,甚至无法检测到何时运行了小书签。

解决方法

您最好的办法是破坏对(某些)全局属性的引用,从而阻止小书签能够使用它们,例如:

window.alert = null;

如果将其放入代码中,则书签将无法使用alert。您可以对大多数窗口属性执行相同的操作。 (为防止您的脚本损坏,请先保存对其的引用,例如:

(() => {
  const alert = window.alert;
  window.alert = null;
  // rest of your script here,referencing `alert`
})();

但是小书签仍然可以运行不包含此类全局属性的JS。另外,如果用户使用 userscript 代替小书签,他们将能够在销毁引用之前保存对变量的引用。

从根本上讲,不可能阻止任何决心在您的网站上运行自己的JS的人;这是客户端的浏览器,只要有足够的决心,他们就可以在其上运行任何想要的东西。这不是您可以可靠控制的东西。通常,您能做的最好就是在服务器上验证 用户正在发送的输入有效。不要相信来自客户端JavaScript代码的任何内容。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。