Web开发的常用攻击和防御方式

一、XSS

主要利用:1.盲目相信用户提交的内容 2.直接把用户的字符串转化成DOM

分类:

1.存储型XSS,恶意脚本存在数据库中,所有访问页面的用户都会被攻击

2.反射型XSS,脚本写在URL中,服务端注入

3.基于DOM的XSS攻击,服务器不参与,浏览器注入

4.基于mutation的XSS,利用浏览器渲染DOM的特性,不同浏览器攻击方式也不同

防御:对string进行转义,扫描svg,自定义跳转链接时要过滤,CSP(限制同源)

二、CSRF

主要利用:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

防御:限制请求来源,校验Origin和Referrer;用户绑定一个有过期时间的token;非同源禁用iframe;GET和POST分开写;samesite cookie,其他页面发出的请求不能带上cookie;对于node,专门构造中间件防御CSRF。

三、注入

分类:

1.SQL注入

2.CLI注入

防御:最小限权,对高位命令建立允许名单,对URL类型参数进行限制

四、Dos

主要利用:通过某种方式,导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应

防御:拒绝使用用户提供的正则,负载均衡,快速扩容,降级非核心服务,使用HTTPS

分类:

1.基于正则表达式的DoS(贪婪模式)

2.DDoS,短时间内让大量僵尸设备请求服务器,TCP三次握手不能完成,服务器连接不能释放

五、传输层中间人攻击

主要利用:明文传输,信息篡改不可知,缺少身份验证

SRI:通过对比Hash,判断资源是否被篡改

posted @ 2023-02-27 20:49  小兔巴尼  阅读(35)  评论(0编辑  收藏  举报