欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端安全问题总结

程序员文章站 2022-07-07 18:35:47
...

xss (cross site scripting) 跨站脚本攻击

分类:

  1. 反射型(url直接注入)

一般会转为短网址,消除可疑。

  1. 存储型(存储到DB后读取时注入)危害较大!

例如在评论区的内容中加入<script>alert</script>,提交后被存储在数据库中,其他用户一旦进入就会遭到攻击。

攻击注入点:

  1. 节点内容:
<div>
    #{content}
</div>

<div>
    <script>
    </script>
</div>
复制代码
  1. html属性
<img src="#{image}" />

<img src="1    " onerror="alert(1)    " />
复制代码
  1. javascript代码
<script>
    var data = "#{data}";
    var data = " hello";alert(1);"  ";
</script>
复制代码
  1. 富文本(例如QQ邮箱)

富文本需要保留html,而html有被攻击的风险

xss如何进行防御?

  1. 浏览器自带的防御

只能防御前两种。

  1. 转义
var escapeHtml = function(str) {
    str = str.replace(/&/g, '&amp;');
    str = str.replace(/</g, '&lt;');
    str = str.replace(/>/g, '&gt;');
    str = str.replace(/"/g, '&quoto;');
    str = str.replace(/'/g, '&#39;');
    str = str.replace(/ /g, '&#32;');
    return str;
}
复制代码