工作中遇到的防范XSS攻击的一点小技巧

559 阅读1分钟

工作中,表单的需求是相当多的,不可避免地会遇到需要用户输入的场景,这个时候,往往会忽略掉 防范XSS攻击。

这里推荐一个链接 浅说 XSS 和 CSRF , 作者比较详细地介绍了XSS,以及一些用例,可以通过这个了解一下,就不做过多解释了,大家应该都知道。

前端转义

正则表达式很难对用户输入的内容进行转义,它只负责校验,还是很好用的

分享一个很简单的转义方法

htmlEncode(str) {
        const div = document.createElement('div');
        div.appendChild(document.createTextNode(str));
        return div.innerHTML; // 这一步会返回一个转义之后的字符串,比如<div> -> &lt;div&gt;
    }

是的,你没有看错,使用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…

后端处理

前端源代码可见,很多防范措施都可以被绕过,只是加了一把小锁而已,真正的防范措施还是得让后端去控制。

之前一直在语雀上写博客,这次转到掘金上试一试,那边的评论太少了,不过相对来说安静一些,适合写作。哈哈 ;-)