阿里云课堂·云安全·Web应用安全认知(笔记)

Web应用安全认知

主要内容

  • Web应用的主要威胁
  • SQL注入攻击分类、方式
  • SQL注入攻击的防御
  • XSS攻击的分类、方式
  • XSS攻击的防御方法
  • 文件上传攻击的分类、方式
  • 文件上传攻击的防御

1.OWASP TOP 10

OWASP十大Web弱点介绍(OWASP-组织 https://www.owasp.org)

OWASP提供了一个Web应用安全的适合和全面的框架和过程。OWASP提高电子商务安全的主要功能如下:

  • 十大Web应用安全漏洞
  • 开发指南
  • 代码审计指南
  • 测试指南
  • OWASP移动安全

十大漏洞

A1-注入
A2-失效的身份认证和会话管理
A3-跨站(XSS)
A4-不安全的对象直接引用
A5-安全配置错误
A6-敏感信息暴露
A7-功能级别访问控制缺失
A8-伪造跨站请求(CSRF)
A9-应用已知脆弱性的组件
A10-未验证的重定向和转发

A1-注入

原因:应用程序缺少对输入进行安全性检查所引起的,攻击者把恶意指令数据发送给服务器执行。
危害:注入能导致数据破坏、获取服务器权限等严重问题。
分支:SQL注入、OS命令注入、XPATH注入、LDAP注入、JSON注入、URL注入

A2-失效的身份认证和会话管理

原因:认证和会话管理相关的应用程序功能得不到正确实施
危害:导致攻击者能够执行合法用户的任何操作

A3-跨站(XSS)

原因:跨站式最普遍的Web安全漏洞,和注入类似也是缺少对输入进行安全校验,只不过XSS的关注点在HTML、Javascript上,由于内容比较多,所以独立出来。
危害:攻击者能够在受害者浏览器中执行脚本来劫持用户的会话。
分支:反射式XSS、存储室XSS、基于DOM的XSS

A4-不安全的对象直接引用

原因:一个已授权的用户,通过更改访问时的一个参数,从而访问到原本其并没有授权的对象。
危害:破坏参数所引起的所有数据。

A5-安全配置错误

原因:发生在平台、Web服务器、应用服务器、数据库、架构和自定义代码等层面的安全的错误配置。
危害:攻击者可通过访问默认账户、未使用的网页、未安装补丁的漏洞、未被保护的文件和目录等,获取对系统未授权的访问。

A6-敏感信息暴露

原因:敏感信息在内存、数据库中、客户端,传输过程或缓存等方面时,未得到有效保护。
危害:攻击者可能会窃取或篡改敏感信息。

A7-功能级别访问控制缺失

原因:认证相关,不同在于这个漏洞说明系统已经对URL的访问做了限制,但是这种限制实际上没有生效。
危害:攻击者很容易把网址改成享有特权的网页。

A8-伪造跨站请求(CSRF)

原因:由于浏览器会自动发送会话cookie等认证凭证,导致攻击者能够创建恶意的Web页面来产生伪造请求。
危害:攻击者能够让受害用户修改、执行任何用户权限内的数据和操作。

A9-应用已知脆弱性的组件

原因:未及时升级修补漏洞
危害:漏洞被利用

A10-未验证的重定向和转发

原因:重定向未被验证,攻击者可引导用户访问他们所要用户访问的站点。
危害:攻击者通过重定向视图按照恶意软件或诱导受害者泄漏敏感信息,还可能转发绕过访问控制。

2.深入SQL注入和防护

危害:

  • 数据库信息泄漏
  • 网页篡改
  • 网站被挂马,传播恶意软件
  • 数据库被恶意操作
  • 服务器被远程控制,被安装后门。

SQL注入的预防

  1. 使用预编译,绑定变量
  2. 使用存储过程
  3. 检查数据类型
  4. 使用安全函数
  5. 过滤特殊字符和语句

3.深入XSS注入和防护

跨站漏洞类型

  • 存储型跨站:最直接危害类型,跨站代码存储在服务器
  • 反射型:反射型跨站脚本漏洞,最普遍的类型
  • DOM跨站:DOM,客户端脚本处理逻辑导致的安全问题

XSS攻击的防御措施

  • 使用函数转义
  • 增加cookie安全
  • 在服务端正式处理之前对提交数据的合法性进行检查等
  • 永远不要信任用户输入

4.文件上传攻击和防护

文件上传检测方式

  • 客户端Javascript检测(扩展名)
  • 服务端MIME类型检测(检测Content-Type,http请求头)
  • 服务端目录路径检测(path参数)
  • 服务端文件扩展名检测(文件extensions)
  • 服务端文件内容检测(检测内容是否合法或含有恶意代码)

防御方式

  • 后缀使用黑名单和白名单相结合的方式
  • 服务端一定要验证文件
  • 不要只使用MIME进行文件类型的验证
  • 服务器配置注意不要出现漏洞
  • 对于图片最好通过二次渲染过滤掉非法代码
  • 限定文件可操作的目录,以及保证目录的安全性,上传目录脚本文件不可执行

你可能感兴趣的:(Java架构,Java)