前端安全问题
- xss
- csrf
- doss攻击:拒绝服务攻击;解决:监控流量,限制访问间隔/流量/次数;买高仿服务器;
- 中间人攻击-brupsuit抓包;解决:加密、验签;
- sql注入,通过sqlmap工具
- 文件上传漏洞
#xss攻击
概念:跨站脚本攻击:通过注入恶意代码,盗取用户cookie信息;产生本质**:网站没有对恶意代码过滤**;场景:一般存在于留言/评论模块;
类型:
- 反射型:输入XSS的常用语句,刷新后没弹窗,通过url携带恶意xss
- 存储型:输入XSS的常用语句,刷新之后若还有弹窗,数据已被存储在服务端数据库了
如何防御XSS攻击:
- 输入过滤,输出转义
- 开启httponly:(禁止JS代码获取Cookie)
- 开启csp(网页安全政策)
#CSRF 攻击
概念:跨站请求伪造攻击;本质:利用cookie 会在同源请求中携带发送给服务器的特点,以此来冒充用户的
攻击类型:
- 1 GET类型:比如在网站中的一个img标签里构建一个请求,当用户打开这个网站的时候就会自动发起提交。
- 2 POST类型:比如构建一个表单,然后隐藏它,当用户进入页面时,自动提交这个表单。
- 3 链接类型:比如在a标签的href 属性里构建一个请求,然后诱导用户去点击。
如何防御CSRF攻击?
- 双重验证,请求头Authentication 中加入Token验证,浏览器中通常加密存在 LocalStorage 中
- cookie属性设置Samesite,限制cookie不能作为被第三方使用
#中间人攻击-抓包
概念:通过伪造一个私密的连接,攻击者可以拦截通讯双方的通话并插入新的内容。
攻击过程:获取服务器公钥/私钥;都拿到了可以开始伪造了
#网络劫持
- DNS劫持:比如输入京东跳转到淘宝
- HTTP劫持:http未加密、被劫持加入特定的内容;解决办法全站https
#接口安全
接口权限 + 页面权限 + axios拦截+ 传输加密
- 1 接口权限
# RCAB模型存储接口权限:用户表、权限表、权限对应接口表
- 2 页面权限
# RCAB模型存储页面权限-略;前端前置路由守卫:先判断是否过期,过期清除,重新登录;再判断路由角色字典判断角色是否能访问该页面(还是RCAB模型存储页面权限)
- axios拦截
# 响应拦截:判断session是否过期、是否能访问该接口
- 传输加密
# RSA非对称加密,并定期更换2两对公钥/私钥;加密流程:数据+时间戳(每次请求加密后数据大不同)+签名(