在前端开发中总是认为本人实现了业务代码满足了用户需要,却不知web存在的许多安全隐患,如各种的注入攻打,xss跨站脚本攻打,跨域申请伪造,以及之前提到的不平安的http,其余等等。自己写了一个对于注入攻打能够过滤注入敏感关键字的库xssfilter-js,如果感觉好的能够start,也心愿您能参加奉献
injectFilter.js
注入攻打过滤器(兼容IE)-实现过滤文本或DOM元素中的敏感关键字避免XSS、命令注入、sql注入攻打
大小:4KB
NPM 地址:https://www.npmjs.com/package...
Github :https://github.com/booms21/in...
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:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="injectFilter.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script></head><body> <div id='aa' onclick="javascript:alert('hello world')">) or 1=1</div></body><script> var inf = new InjectFilter({tokens:{'or':'|||'}}); $('#aa').html(inf.filter(document.getElementById('aa')))</script></html>
ES6:
import injectFilter from './injectFilter';