将变量放入onclick定义是否安全?

时间:2011-11-24 02:47:53

标签: javascript jquery

这是一个非常新手的问题。

我设法让一些jQuery的东西运行得很顺利,但我最终得到了很多 像这样的事件..

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

现在我想知道以这种方式放置所有必要的函数变量是否“安全”。我检查了函数中的所有内容,所以即使使用firebug有人改变某些值,他们也不会受到太多伤害但是......这是正确的方法吗?

由于

4 个答案:

答案 0 :(得分:1)

这很可能是安全的。但是,考虑到你有jQuery,将处理程序放在onclick或元素的任何其他属性中是非常好的做法,尤其是。您应该使用.click()来代替:

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

例如。

但是,如果使用JavaScript可以完成任何远程安全问题,则可能不应该在JavaScript中完成。

答案 1 :(得分:1)

这不是一个安全问题,而是一个可读性问题。

当您将网页组件彼此隔离时(CSS文件中的样式表,JS文件中的JavaScript以及自己文件中的HTML),您不太可能丢失文本墙中的代码。

我个人觉得使用jQuery更容易附加处理程序,因为我不必担心搞乱HTML属性。

然而,再一次,不可读的代码容易破碎。

答案 2 :(得分:0)

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

这还取决于你所说的安全。任何人都可以运行萤火虫并弄乱任何网站,但它只适用于他们。这并不像用萤火虫改变dom被认为是一个错误或任何东西,它肯定不是“黑客”,因为你不会因此而获得任何收益。

答案 3 :(得分:0)

如果您想要安全,请必须进行服务器端验证。

如果你使用jQuery没关系。