WEB开发的安全之旅(防御篇)| 青训营笔记

162 阅读2分钟

# WEB开发的安全之旅(防御篇) | 青训营笔记

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

两个角度看WEB安全问题:攻击与防御

防御篇

1 针对XSS攻击的

  • 永远不信任用户的提交内容
    • 不要将用户提交内容直接转换成DOM,而是将其作为string对待

防御XSS攻击的现成工具:

  • 前端

    -主流框架默认防御XSS -google-closure-library

  • 服务端(Node)

    -DOMPurity

如果要把string直接动态生成DOM,就需要对string转义; 如果允许用户上传svg文件,就要对svg文件进行一次扫描; 尽量避免让用户自定义跳转的链接,否则一定要做好过滤; 如果允许用户自定义样式就也可能会有XSS攻击,需要对能够设置url的地方特别留意。

2 CSP 内容安全策略

 SOP同源策略:源就是主机、协议、端口名的一个三元组;同源策略就是同协议、同端口和同主机的一个三同元组。

CSP是一种安全策略,其原理是当浏览器请求某一个网站时,告诉该浏览器申明文件可以执行,什么不可以执行。

  • 哪些源(域名)被认为是安全的
  • 来自安全源的脚本可以执行,否则直接抛错
  • 对eval + inline script 直接拒绝抛错

2 针对CSRF的防御

image.png

CSRF--token防御机制

先有页面,后有请求。除了Origin + Referrer,其他判断【请求来自于合法来源】的方式。

if (请求来自合法页面)
then (服务器接收过页面的请求)
then (服务器可以标识)

image.png

Token作为识别操作是否是当前用户自己操作的唯一凭证,需要设置为复杂难以被破解的内容。Token需要有一个过期时间。

CSRF--iframe攻击防御机制

image.png

界面操作劫持是一种基于视觉欺骗的web劫持攻击,在正常的网页操作按钮上面,放入一个不可见的iframe,实际上用户的操作行为被其不可见的框所劫持,然后执行恶意代码。

HTTPS--不可抵赖:数字签名

个人体会与总结

安全无小事,注重WEB开发过程中的安全问题!