在前端开发中总是认为自己实现了业务代码满足了用户需求,却不知web存在的许多安全隐患,如各种的注入攻击,xss跨站脚本攻击,跨域请求伪造,以及之前提到的不安全的http,其他等等。本人写了一个对于注入攻击可以过滤注入敏感关键字的库xssfilter-js,如果觉得好的可以start,也希望您能参与贡献
injectFilter.js
注入攻击过滤器(兼容IE)-实现过滤文本或DOM元素中的敏感关键字防止XSS、命令注入、sql注入攻击
大小:4KB
Docs文档:
安装:npm install xssfilter-js
options 配置项://创建一个InjectFilter对象,可传入options配置对象
var inf = new InjectFilter(options);
options.tokens = 可添加额外的自定义过滤字符,对象类型键值对
{'需要替换的目标字符':'字符1'}
key为需要替换的字符,value为想要将目标字符替换成的字符。
options.xss = true;
默认为true。 需为布尔值,是否启用过滤xss注入
options.command = true;
默认为true。 需为布尔值,是否启用过滤command(命令注入)
options.sql = true;
默认为true。 需为布尔值,是否启用过滤sql注入
注:命令和sql将过滤成对应的‘全角’文本(如select 、delete from、ping )
Demo:
Documentvar inf = new InjectFilter({tokens:{'or':'|||'}});
$('#aa').html(inf.filter(document.getElementById('aa')))
ES6:import injectFilter from './injectFilter';