请教各位大神关于从js写法上避免xss攻击的问题。
rt
请问,是不是每个元素的js事件需要在document.ready之后进行绑定,然后再过滤掉html代码中的onclick等等事件,可以起到防止xss的效果?
小白是今天刚刚看到xss的问题,所以发出这样的提问,请莫怪。
4 回复
/*
* 说明:过滤XSS
* 模板中使用<!--{}-->标签输出变量则自动添加XSS过滤
* 使用<!--@@-->标签则不进行xss过滤
* 使用:
* initnode.filter.xss(val);
*/
this.xss = function (val) {
val = val.toString();
val = val.replace(/[<%3C]/g, "<");
val = val.replace(/[>%3E]/g, ">");
val = val.replace(/"/g, """);
val = val.replace(/'/g, "'");
return val;
};
主要输出过滤吧
过滤了尖括号确实一了百了, 问题是大量的CMS和论坛都采用可视化HTML编辑器, 实现图文并茂的内容, 你不能简单地把<HTML>标签都过滤了
谢谢两位解答,不知能不能粗略讲解下xss攻击的基本原理,网上众说纷纭,小白有些盲目。。