阅读 1855

常见的web攻击方式及防护方法

整理图解http一书中关于web攻击相关的知识。

一、针对Web的攻击技术

  1. HTTP本身不具备必要的安全功能,需要开发者自行开发认证及会话管理功能;
  2. 在客户端可以篡改请求,导致Web 应用收到与预期不一致的内容,可能包含攻击代码;
  3. 针对Web应用的攻击模式
    • 主动攻击:指攻击者通过直接访问 Web 应用, 把攻击代码传入,如:SQL 注入攻击和 OS 命令注 入攻击
    • 被动攻击:是指利用圈套策略执行攻击代码的攻击模式,如:跨站脚本攻击、跨站点请求伪造
    • 利用用户的身份攻击企业内部的网络

二、因输出值转义不完全引发的安全漏洞

1. 跨站脚本攻击(XSS)

XSS(cross site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。

防范:

  1. 对于敏感的cookie信息,使用HttpOnly,使document对象中找不到cookie。
  2. 对于用户输入的信息要进行转义。

2. SQL注入攻击

通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

防范:

  • 永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等
  • 永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取
  • 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
  • 不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息

3. OS命令注入攻击

OS 命令注入攻击(OS Command Injection)是指通过 Web 应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell 函数的地 方就有存在被攻击的风险。

防范:

  • 后端对前端提交内容进行规则限制(比如正则表达式)。
  • 在调用系统命令前对所有传入参数进行命令行参数转义过滤。
  • 不要直接拼接命令语句,借助一些工具做拼接、转义预处理,例如 Node.js 的 shell-escape npm包

4. HTTP首部注入攻击

通过在响应首部字段插入换行,添加任意响应首部或主体的一种攻击

影响

  • 设置任何Cookie信息
  • 重定向至任意URL
  • 显示任意的主体(HTTP响应截断攻击)

防范: 使用https,对http报文做加密、认证及完整性保护,防止篡改。

5. 邮件首部注入攻击

  Web邮件发送功能,攻击者通过邮件首部添加非法内容发起攻击

6. 远程文件包含漏洞

  部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,脚本读取后进行攻击

三、因设置/设计缺陷引发的安全漏洞

错误设置Web服务器等引发的安全漏洞

  1. 强制浏览器:在公开目录下浏览非公开文件
  2. 不正确的错误消息处理:Web应用的错误信息包含攻击者有用的信息
  3. 开放重定向:对任意URL重定向跳转到恶意网站上

四、因会话管理疏忽引发的安全漏洞

1. 会话劫持

通过某种手段拿到用户的会话ID,伪装用户

2. 会话固定攻击

强制用户使用攻击者指定的会话ID

3. 跨站请求伪造(CSRF)

跨站请求伪造(CSRF,Cross-site request forgery)是另一种常见的攻击。攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了假冒用户的身份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含攻击的链接

防范:

  1. 采用POST请求,增加攻击的难度.用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,攻击者往往需要借助java才能实现
  2. 对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同一个人

五、其他安全漏洞

  1. 密码破解
    • 穷举法:暴力破解,对系统进行试错。
    • 字典攻击:枚举字典中的密码。
    • 对加密的密码进行破解。
  2. 点击劫持:利用透明的按钮或链接做成陷阱,覆盖在web页面上,诱惑用户点击
  3. DOS攻击:让运行中的服务呈现停止状态

参考

文章分类
前端
文章标签