阅读 12

前端安全问题总结

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;
}
复制代码
评论