将变量放在onclick定义中是安全的
Is safe to put variables in a onclick definition?
这是一个新手问题。
我已经设法得到一些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。
相关文章:
- 用嵌套函数和默认函数定义函数
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 控制台返回var不是't定义,但它是
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- jQuery自定义验证比较多个输入的序列
- 查看JS对象的所有键,甚至是getter定义的键
- 有没有一个JavaScriptHTML模板既支持null合并(“未定义”安全),又能防止XSS
- 在RequireJS中使用异步加载来定义一个模块,然后在immediate函数中使用它安全吗?
- 将变量放在onclick定义中是安全的
- 让用户定义角表达式安全吗?
- 用自定义方法替换本机对象(数组)方法:是否安全?兼容的
- 在srcset中定义多个描述符安全吗?
- 如何以安全的方式在dojo gfx形状上定义自定义属性
- 用于检查字符串相等性的Javascript库,该库对于未定义的变量是安全的
- Adobe商业催化剂-自定义安全区域
- 需要安全的方式在web环境的服务器上解释和执行用户定义的逻辑