摘要:公司用到的防止攻击的组件代码空过滤过度方案过滤字符串中的过滤节点属性中的过滤
公司用到的防止xss攻击的组件代码
function $xss(str,type){ //空过滤 if(!str){ return str===0 ? "0" : ""; } switch(type){ case "none": //过度方案 return str+""; break; case "html": //过滤html字符串中的XSS return str.replace(/[&""<>/-x00-x09x0b-x0cx1fx80-xff]/g, function(r){ return "" + r.charCodeAt(0) + ";" }).replace(/ /g, " ").replace(/ /g, "
").replace(/ /g,"
").replace(/ /g,"
"); break; case "htmlEp": //过滤DOM节点属性中的XSS return str.replace(/[&""<>/-x00-x1fx80-xff]/g, function(r){ return "" + r.charCodeAt(0) + ";" }); break; case "url": //过滤url return escape(str).replace(/+/g, "%2B"); break; case "miniUrl": return str.replace(/%/g, "%25"); break; case "script": return str.replace(/[""]/g, function(r){ return "" + r; }).replace(/%/g, "x25").replace(/ /g, " ").replace(/ /g, " ").replace(/x01/g, "x01"); break; case "reg": return str.replace(/[^$*+?{}.()[]]/g, function(a){ return "" + a; }); break; default: return escape(str).replace(/[&""<>/-x00-x09x0b-x0cx1fx80-xff]/g, function(r){ return "" + r.charCodeAt(0) + ";" }).replace(/ /g, " ").replace(/ /g, "
").replace(/ /g,"
").replace(/ /g,"
"); break; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/82186.html
摘要:可能造成危害利用已通过认证的用户权限更新设定信息等利用已通过认证的用户权限购买商品利用已通过的用户权限在留言板上发表言论。二说说你说了解的前端性能优化方面减少请求合并文件精灵减少查询查询完成之前浏览器不能从这个主机下载任何任何文件。 一、说说你所知道的web安全及防护措施 常用攻击手段:SQL注入、XSS(Cross Site Script),跨站脚本攻击、CSRF(Cross Sit...
摘要:可能造成危害利用已通过认证的用户权限更新设定信息等利用已通过认证的用户权限购买商品利用已通过的用户权限在留言板上发表言论。二说说你说了解的前端性能优化方面减少请求合并文件精灵减少查询查询完成之前浏览器不能从这个主机下载任何任何文件。 一、说说你所知道的web安全及防护措施 常用攻击手段:SQL注入、XSS(Cross Site Script),跨站脚本攻击、CSRF(Cross Sit...
摘要:由于是需要兼容的后台系统,该项目并不能使用到等技术,因此我在上的经验大都是使用原生的编写的,可以看见一个组件分为两部分视图部分,和数据部分。 在公司里帮项目组里开发后台系统的前端项目也有一段时间了。 vue这种数据驱动,组件化的框架和react很像,从一开始的快速上手基本的开发,到后来开始自定义组件,对element UI的组件二次封装以满足项目需求,期间也是踩了不少坑。由于将来很长一...
阅读 1138·2021-11-22 15:24
阅读 4334·2021-09-23 11:51
阅读 2264·2021-09-08 09:36
阅读 3492·2019-08-30 15:43
阅读 1279·2019-08-30 13:01
阅读 1097·2019-08-30 12:48
阅读 505·2019-08-29 12:52
阅读 3303·2019-08-29 12:41