gpt4 book ai didi

javascript - 禁止在 URL 地址栏上使用 Javascript

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:10 24 4
gpt4 key购买 nike

我为我的网站编写了许多 javascript 函数,最近我发现只需在 URL 栏上编写 javascript:FunctionName(); 即可调用这些函数。像这样调用函数对我的网站来说很容易受到攻击,那么有什么方法可以防止这种情况发生吗?有什么方法可以停止在地址栏上使用 Javascript?

任何微妙的方法也可以提供帮助,例如任何检测从何处调用函数的方法,如果它不是来自地址栏,则该函数应该运行,否则它不会运行?

我尝试在 Facebook 的地址栏上使用 Javascript,但没有成功。所以必须有办法阻止它..

最佳答案

我同意其他评论者的观点,即检测“调用函数的位置,如果它不是来自地址栏,则该函数应该运行”是接近客户端安全的糟糕方法,只要有这样的事情。

也就是说,函数作用域、闭包以及它与 URL 栏的关系是一个有趣的话题。 Here's some more context on global variables and scope .简短的版本是,如果你有这样的功能:

function test (argument) {
alert('hey')
}

它可以通过 URL 栏执行,因为它在窗口/全局范围内,这似乎是 javascript URI 的范围。而如果将相同的函数放在闭包中:

(function() {
function test (argument) {
alert('hey')
}
})()

...就执行 URL 栏中的功能而言,它应该是不可访问的。

我很想知道为什么浏览器 vendor 通过 URL 实现 Javascript 的历史......它现在在小书签等方面有实际用途,但似乎没有很好的记录。

关于javascript - 禁止在 URL 地址栏上使用 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com