Web安全(攻击篇) | 青训营笔记

111 阅读2分钟

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

本笔记对应的是青训营关于Web安全部分中常见攻击方法的知识。

1 课程内容概括

安全问题是常见的,也是备受关注的。一旦安全问题出现,会为用户带来数据泄露、财产损失等问题,对公司的声誉与收益也有较大影响,程序员也需要负责。本节课针对Web安全面临的常见攻击手段做出了介绍。

2 XSS

XSS:跨站脚本攻击,是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。XSS主要利用的是对用户提交内容的盲目信任。

XSS攻击发生时,往往难以从UI中感知,而是静默地偷偷执行脚本,通常会窃取用户的cookies或者token等敏感信息,还可以绘制弹窗等UI,来诱骗用户点击、填写表单,造成用户的数据泄露或使用户遭受欺骗。

XSS还有几种形式:

Stored XSS:恶意脚本存放在数据库中,访问页面读数据后被攻击,危害最大,对全部用户可见。

Reflected XSS:不涉及到数据库,而是通过URL攻击。

DOM-based XSS:不需要服务器参与,恶意攻击的发起和执行均在浏览器端完成。

Mutation-based XSS:利用浏览器渲染DOM的特性,并针对此特性作独特优化,因此会按浏览器攻击,导致在不同浏览器环境中会有区别。

3 CSRF

CSRF指跨站点请求伪造。在用户不知情时,利用用户的cookies权限,构造指定的HTTP请求,从而窃取或者修改用户的敏感信息。

4 注入(Injection)

常见的是SQL注入,但又不止SQL,比如CLI、OS Command。

此外,服务端伪造请求SSRF的原理也与注入类似。

5 拒绝服务(DoS)

通过构造特定请求的方式,显著消耗服务器资源,使得服务器没有资源来响应更多的请求,造成请求积压,随着积压逐渐增多,最终服务器无法提供服务。

DoS有一些形式:

ReDoS:基于正则表达式的DoS。

DDoS:分布式拒绝服务,异常请求流量可来自大量僵尸设备。

6 中间人攻击

当数据明文传输、信息篡改不可知、对方身份未验证时,可发生中间人攻击。

7 总结与思考

本笔记涉及到Web安全的攻击方式内容,了解攻击方式可以让开发人员了解开发时应该注意的安全问题,是了解防御手段的前提。