工作中,表单的需求是相当多的,不可避免地会遇到需要用户输入的场景,这个时候,往往会忽略掉 防范XSS攻击。
这里推荐一个链接 浅说 XSS 和 CSRF , 作者比较详细地介绍了XSS,以及一些用例,可以通过这个了解一下,就不做过多解释了,大家应该都知道。
前端转义
正则表达式很难对用户输入的内容进行转义,它只负责校验,还是很好用的
分享一个很简单的转义方法
htmlEncode(str) {
const div = document.createElement('div');
div.appendChild(document.createTextNode(str));
return div.innerHTML; // 这一步会返回一个转义之后的字符串,比如<div> -> <div>
}
是的,你没有看错,使用innerHTML 就可以进行转义了,就跟使用toLocaleString('en-US') 可以将大数三位加一个逗号一样简单
const transform = num => num.toLocaleString('en-US');
transform(31242535155715) // "31,242,535,155,715"
推荐的库
github.com/leizongmin/… 这个库可以关注一下,这是它的官网 jsxss.com/zh/index.ht…
后端处理
前端源代码可见,很多防范措施都可以被绕过,只是加了一把小锁而已,真正的防范措施还是得让后端去控制。
之前一直在语雀上写博客,这次转到掘金上试一试,那边的评论太少了,不过相对来说安静一些,适合写作。哈哈 ;-)