基本的过滤XSS函数,输出的时候进行过滤,输出的时候不要将内容写进html标签内
/*
* 说明:过滤XSS
* 使用:
* initnode.request.xss(val);
*/
this.xss = function (val) {
val = val.replace(/[<%3C]/g, "<");
val = val.replace(/[>%3E]/g, ">");
val = val.replace(/"/g, """);
val = val.replace(/'/g, "'");
return val;
}
回复 (13)
J
是不是将 javascript / onclick 等这样的关键词也过滤掉?
I
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
理论上不需要,输出的时候用这个函数过滤 替换了 < > ' " 标签,理论上一般无法组装成功
J
刚才看node模块 validator 的源码,发现它的xss()过滤了所有html 和javascript关键字呢
L
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
@initphp 把所有的<>都替换了,就没办法发图片了,不能因噎废食
J
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
@leizongmin 是的,有时候希望只限制危险TAG,这样就能图文并茂
D
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
@j4cnodejs 做防注入永远不要用黑名单,只用白名单
J
引用 j4cnodejs刚才看node模块 validator 的源码,发现它的xss()过滤了所有html 和javascript关键字呢
@initphp 实验证明: sanitize().xss() 只清除危险脚本, 不会破坏安全的HTML标签, 所以尽管放心去用!
A
人类已经无法阻止cnodejs被XSS了!
I
引用 j4cnodejs刚才看node模块 validator 的源码,发现它的xss()过滤了所有html 和javascript关键字呢
这个过滤方法一直在我php框架中用,开源软件有些也是这样的过滤 主要是输出的时候过滤就行了 但是会碰到一些需要输出HTML的情况,这些就得特殊处理了
I
引用 j4cnodejs刚才看node模块 validator 的源码,发现它的xss()过滤了所有html 和javascript关键字呢
@j4cnodejs 看了下 的确很复杂,但是我个人觉得过于复杂了,我这个应该能满足需求,php中就这么干...
I
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
@leizongmin 这样就可以了... 遇到编辑器之类的另外处理
I
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
@initphp 晕死,发HTML全部被过滤了...尴尬
J
引用 j4cnodejs是不是将 javascript / onclick 等这样的关键词也过滤掉?
@initphp 安全的html标签不会被过滤的, 不安全(可能被执行的脚本)才会过滤掉
参与回复
登录后即可参与回复。登录