nodejs转译
- 在nodejs中,为保证项目安全,可使用xss库(函数)转译js特殊字符(具体案例可看笔记“博客项目安全-xss攻击”)
- 转译:也就是将尖括号等都转换为特殊字符:
- 比如:
<script>alert(1)</script>;
转译后就是<script>alert(1)</script>
- 这样可以预防xss攻击,但前端从数据库汇总读出
<script>alert(1)</script>
后显示在页面上,为使尖括号等字符正常显示,需要在前端进行 js反转译
html反转译
- html反转译也就是让特殊字符显示回正常的字符
- 由于浏览器 innerHTML属性 会自动转译,所以先设置 innerHTML ,再显示即可:
1
2
3let a=document.createElement('a')
a.innerHTML=' > < &';
console.log(a.textContent);// > < & - **jquery中则使用html()**代替innerHTML属性:
1
2DOM元素.innerHTML = "需要被反转译的字符串"; //这个是原生js的写法
DOM元素.html("需要被反转译的字符串"); //这个是jquery写法
html 标签转译反转译
可参考文章:html 标签转译反转译