我需要循环遍历所有表单元素并从中获取文本并提取任何不需要的值。诸如':,.{}\|*&^%$#@!~`?/
等值,以确保我的网站上没有任何注入攻击。我是一个javascript noob,我需要一些帮助。
有什么建议吗?
答案 0 :(得分:4)
如果你必须这样做,这里有一个基础(香草javascript,没有libs)工作:
var els = document.forms[0].elements;
for (var el in els) {
var val = el.value;
if (/[':,.{}\|*&^%$#@!~`?/]/.test(val)) {
// Potential issue, do your repairs here
el.value = fixedValue;
}
}
编辑:逃避被诅咒,我确信我应该逃过那里的东西,但我并不在乎。 :)
答案 1 :(得分:2)
在服务器端进行验证。
那里会更安全: - )
更安全我的意思是用户无法使用验证码来实现它,以便他们不应该输入他或她的输入。
或者,如果用户关闭 javascript,并且您有否服务器端验证,则您的输入未经验证 >>。< / p>
答案 2 :(得分:1)
既然你说jQuery可以使用:
$(":input").each(function(){
$(this).val($(this).val().replace(/[^\w\s]/gi, ''));
});
虽然客户端验证可能对用户体验有益,但不应跳过服务器端验证。