将变量放在onclick定义中是安全的

Is safe to put variables in a onclick definition?

本文关键字:安全 定义 onclick 变量      更新时间:2023-09-26

这是一个新手问题。

我已经设法得到一些jQuery的东西运行相当顺利,但我最终有很多像这样的事件……

<div class="aClass" id="B436" onclick="updateSearch('B436', '','Brand','193557', 0)">My Name</div>

现在我想知道它是否"安全"把我所有必要的函数变量以这种方式。我检查了函数中的所有内容,所以即使有人用firebug更改了一些值,也不会造成太大伤害,但是……这是正确的方法吗?

谢谢

这很可能是安全的。然而,将处理程序放在onclick或元素的任何其他属性中(特别是)并不是一个很好的实践,因为您有jQuery。您应该使用.click()来代替:

$('#B436').click(function() {
    updateSearch('B436', '', 'Brand', '193557', 0);
});
例如

然而,如果任何远程安全问题都可以使用JavaScript完成,那么它可能不应该在JavaScript中完成。

这不是安全本身的问题,更多的是可读性问题。

当你保持你的网页组件彼此隔离(样式表在CSS文件中,JavaScript在JS文件中,HTML在自己的文件中),你不太容易丢失代码在你的文本墙。

我个人发现使用jQuery来附加处理程序更容易,因为我不必担心混淆HTML属性。

但是,不可读的代码很容易出错。

这是一种方法。它可能不安全的唯一方式是如果你愚蠢地使用变量——比如直接ajax数据库而不净化变量或其他东西。

这也取决于你所说的安全。任何人都可以运行firebug并破坏任何站点,但它只会为他们服务。这并不像用firebug改变dom被认为是一个bug或其他什么东西,它当然不是"黑客",因为你这样做什么也得不到。

在这种情况下,如果您想要安全,您必须具有服务器端验证。

不管你是否使用jQuery。