# 安全
# *1.XSS跨站脚本攻击
通过注入脚本来攻击。分为反射型,存储型,基于DOM三种类型 反射型:访问一个链接,服务端返回的是一个恶意脚本 存储型:将恶意数据存储到数据库,常见的是评论,这样当其他人看到这个评论时都会在浏览器执行这个恶意脚本 基于dom:通过恶意脚本修改页面的dom结构,当用户点击提交后就会执行恶意脚本 解决方案:
- 输入过滤 输出转义(可以只转<和>)
- cookie通过开启httpOnly防御(开启之后,js脚本不能访问cookie)
# 2.介绍下CSRF和XSS
- CSRF:跨站请求伪造(cross site request forgery) 攻击者通过某些手段(XSS,链接欺骗等)获得用户信息, 再伪造用户身份去发起请求
- XSS:跨站脚本攻击(cross site scripting),攻击者注入恶意脚本,在用户浏览网页的时候进行攻击
- 防御XSS:cookie设置httpOnly属性,对用户输入的特殊字符进行过滤
- 防御CSRF:(请求地址中添加token)通过服务器验证http的referer(可知请求来自于哪个页面)字段,判断是否是可信任网站发起的请求
# 3.什么是CSP
CSP只允许加载指定的脚本和样式,用来防止XSS攻击 通过HTTP响应头的Content Security Policy来设置。如Content-Security-Policy: script-src 'self'。代表只加载当前域名下的脚本(具体参考API)