六、web开发的安全之旅 | 青训营笔记

95 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的的第6天

今天的课程是web开发的安全之旅,讲web安全的问题,还是比较感兴趣

一、攻击篇

1、XSS攻击

  • 通过浏览器对网站页面插入恶意交互脚本获取其他用户浏览器当前渲染的用户信息。

  • 利用网页对用户提交信息的盲目信任向服务器传输脚本木马攻击。

  • XSS通常伪装成网站类似UI如弹窗表单,诱导用户点击or填写表单,盗取token/cookie等用户隐私,而且通常暗地的执行脚本,难以从UI上察觉。

2、CSRF攻击

CSRF (Cross-site request forgery),又称为跨站伪造请求。‘

  • 特性:用户没有直接访问请求页面,但是目标服务器对饮的接口被访问了,而且请求成功且返回正常。
  • CSRF-GET/POST请求 攻击者只需要构造GET请求按钮、POST请求表单即可。

3、SQL注入攻击

  • SQL注入攻击又叫做数据库注入,通常直接在请求体中写SQL参数或者SQL命令,操作数据库以达到修改数据的目的。

  • 注入攻击不仅可以用于SQL服务端,在CLI脚手架、OS命令行等都可以使用。

4、SSRF攻击

SSRF(Server-Side Request Forgery)严格来说不算注入,但原理相似。

  • 请求用户自定义的回调接口 callback
  • web server 有内网权限

5、DOS攻击

DOS攻击又叫分布式拒绝服务攻击,通过过载请求使得服务器资源被过度消耗而崩溃。这也是最常见的黑客攻击方式,通过服务器任意API直接访问IP,占用带宽使得服务器宕机。DDoS利用TCP的三次握手原理,反复来回交换数据占用带宽。

6、中间人攻击

俗称“肉鸡”,利用Web的明文请求,无法验证请求端身份与其请求体是否含篡改内容

二、防御篇

1、XSS防御

  • 永远不要相信用户提交的内容,
  • 不要将用户提交的内容直接转换成DOM
  • 当用户应用需求需要使用到动态DOM时间,应该设置逻辑对上传DOM和解析DOM进行转义
  • 对于svg文件的上传应该尤其的注意防护,svg文件可以内嵌js脚本
  • 尽量不要允许用户自定义跳转(JS)、自定义样式也不行

2、同源策略

  • 前端请求时应该保证与服务器的安全策略一致
  • 同源请求策略要求网页所在目录与请求接口域名一致,不一致则会发生跨域(CORS安全策略)
  • 对eval+inline script不生效

3、CSRF安全防御

  • 避免GET接口和POST接口合并等偷懒行为
  • 防护SameSIte Cookie信息泄露,SameSite Cookie依赖于第三方的Cookie请求,需要允许第三方域名采集Cookie.
  • 防御CSRF需要注意逐级施加权限限制
  • 也可以采用token防护

4、SQL注入防护

  • 最小原则:避免使用sudo || root 命令
  • 建立ip白名单,拒绝异常rm操作
  • 对URL类型参数、域名、IP加逻辑检验,限制异常请求———防范内网被突破

5、防范DOS攻击

  • 减少允许用户使用正则表达式请求
  • 增加校验, 对代码做扫描 +正则性能测试
  • 限流: 限制流量的异常波动,对于异常IP封锁。
  • 并不是非黑即白: 有时候需要请求量超过阈值才能检测出L-DoS
  • 分析代码的性能瓶颈:同步调用、串行逻辑、CPU密集操作
  • 过滤:负载均衡、API网关
  • 抗量:CDN、快速扩容、 非核心服务降级备战

心得体会

这应该是第一次写青训营的心得吧,这应该我目前收获最大得一帐内容了,以前从没考虑过安全问题,今天看到很多都是我曾经写过得坑,幸亏不是商业项目,不然就直接凉凉了,写web网站一定要注意安全,注意安全。以后也要多多学习这方面得东西