nodejs/html转译 与 html反转译

nodejs转译

  • 在nodejs中,为保证项目安全,可使用xss库(函数)转译js特殊字符(具体案例可看笔记“博客项目安全-xss攻击”)
  • 转译:也就是将尖括号等都转换为特殊字符转换特殊字符
  • 比如:<script>alert(1)</script>;转译后就是&lt;script&gt;alert(1)&lt;/script&gt;
  • 这样可以预防xss攻击,但前端从数据库汇总读出&lt;script&gt;alert(1)&lt;/script&gt;后显示在页面上,为使尖括号等字符正常显示,需要在前端进行 js反转译

html反转译

  • html反转译也就是让特殊字符显示回正常的字符
  • 由于浏览器 innerHTML属性 会自动转译,所以先设置 innerHTML ,再显示即可
    1
    2
    3
    let a=document.createElement('a')
    a.innerHTML='&nbsp; &gt; &lt; &amp;';
    console.log(a.textContent);// > < &
  • **jquery中则使用html()**代替innerHTML属性:
    1
    2
    DOM元素.innerHTML = "需要被反转译的字符串"; //这个是原生js的写法
    DOM元素.html("需要被反转译的字符串"); //这个是jquery写法

html 标签转译反转译

可参考文章:html 标签转译反转译

,