Web 的攻击技术
1、针对 Web 的攻击技术
简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。
根据 HTTP 协议不具备安全功能的特性,应用 HTTP 协议的服务器和客户端,以及运行在服务器上的 Web 应用等资源才是攻击目标。
针对 Web 应用的攻击模式:
- 主动攻击:指攻击者通过直接访问 Web 应用,把攻击代码传入的攻击模式。代表:SQL注入攻击和 OS 命令注入攻击。
- 被动攻击:指利用圈套策略执行攻击代码的攻击模式。在被动攻击过程中,攻击者不直接对目标 Web 应用访问发起攻击。代表:是跨站脚本攻击和跨站点请求伪造。
2、跨站脚本攻击(Cross-Site Scripting,XSS)
通过存在安全漏洞的Web 网站注册用户的浏览器内运行非法的 HTML标签或 JavaScript 进行的一种攻击。
可能造成影响:
- 利用虚假输入表单骗取用户个人信息。
- 利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
- 显示伪造的文章或图片。
防御方法:
- HEAD 设置 X-XSS-Protection
- 设置HttpOnly Cookie 防止被客户端窃取cookie CSP(内容安全策略)
- 对输入的字符进行转义
- 白名单
- 黑名单
3、SQL 注入攻击
指针对 Web 应用使用的数据库,通过注入有sql含义的字符,然后运行非法的 SQL而产生的攻击。
可能造成影响:
- 非法查看或篡改数据库内的数据。
- 规避信息认证 执行和数据库服务器业务关联的程序等
防御方法:
- 不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。
- 给当前用户提供仅能够满足其工作的最低权限。
- 对进入数据库的特殊字符(',",\,<,>,&,*,; 等)进行转义处理,或编码转换。
4、OS 命令注入攻击
指通过 Web 应用,执行非法的操作系统命令达到攻击的目的。
OS命令注入和SQL注入差不多,只不过SQL注入是针对数据库的,而OS命令注入是针对操作系统的。只要在能调用 Shell 函数的地方就有存在被攻击的风险。
可能造成影响:
- 影响计算机某些操作
- 危害整个项目的运行
防御方法:
- 选择不调用OS命令的实现方法
- 不将外界输入的字符串传递给命令行参数
- 在调用系统命令前对所有传入参数进行命令行参数转义过滤
5、HTTP 首部注入攻击
指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。
可能造成影响:
- 设置任何 Cookie 信息。
- 重定向至任意 URL。
- 显示任意的主体(HTTP 响应截断攻击)
防御方法:
- 使用https,对报文做加密、认证及完整性保护,防止篡改
6、跨站点请求伪造(Cross-Site Request Forgeries,CSRF)
指攻击者通过设置好的陷阱,利用已经认证的用户信息进行非预期的个人信息或设定信息等某些状态更新。
可能造成影响:
- 利用已通过认证的用户权限更新信息,购买商品等。
- 利用已通过认证的用户权限留言,删除博客等。
防御方法:
- 禁用CORS
- 使用CSRF Tokens认证
- 验证码验证等
7、DDOS 攻击
是一种让运行中的服务呈停止状态的攻击。也叫做服务停止攻击或拒绝服务攻击。
可能造成影响:
- 服务器宕机,整个或部分业务瘫痪
防御方法:
- 备份网站
- HTTP请求的拦截(服务器过滤、专用硬件、防火墙)
- 带宽扩容
- 高防IP