web应用安全问题的分类(一)

一、客户端脚本安全问题

  • 跨站脚本攻击(XSS):XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
  • 跨站请求伪造(CSRF):一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本XSS相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。
  • 点击劫持(Clickjacking):一种视觉欺骗攻击手段,将用户对页面 A 的操作转移到隐藏的页面 B 上(通常使用iframe标签,设置透明度来实现),以此达到让用户在不知情的情况下完成 B 页面上的特定任务,达到非法目的。其中,可以转移的操作有 “点击”、“拖拽”、“滑动” 等。主要劫持目标是含有重要会话交互的页面,如银行交易页面、后台管理页面等。
  • 网站钓鱼:欺骗用户的虚假网站。“钓鱼网站”的页面与真实网站界面基本一致,欺骗消费者或者窃取访问者提交的账号和密码信息。钓鱼网站一般只有一个或几个页面,和真实网站差别细微,通常伪装成银行及电子商务、窃取用户提交的银行账号、密码等私密信息的网站。

二、服务端应用安全问题

  • 认证与会话安全:攻击者通过劫持sessionId,冒充登录用户对一些需要登录认证的页面进行非法访问,sessionId一般保存在Cookie中,受到浏览器同源策略的保护,但是也可以作为URL参数传递(极不安全),如果Cookie被劫持也有可能导致sessionId被窃取。
  • 访问控制安全:访问控制是在认证以后的另一道安全屏障,也称为权限控制,访问控制是按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。常见的访问控制漏洞有水平越权、垂直越权、未授权访问、目录遍历四种,可能会对服务器或Web系统造成较大的危害。
  • 加密算法安全:密码算法在使用过程中往往面临着参数选择问题,如果使用了不安全的选项或参数,将导致严重的安全问题。可能导致不安全参数的情况有:使用弱长度密钥,使用低熵值随机数。
  • SQL注入攻击:SQL注入攻击是一种利用应用程序漏洞的攻击方式。攻击者通过在表单提交的数据上构造SQL语句,如果web应用不去验证这些数据,就有可能注入到SQL中,拼接成非法的SQL语句,从而获取数据库中的敏感信息,修改或删除数据库中的数据,或者完全控制Web服务器。
  • 文件上传漏洞:如果WEB应用在文件上传过程中没有对文件的安全性进行有效的校验,攻击者可以通过上传Webshell等恶意文件对服务器进行攻击。
  • Web框架漏洞:这些漏洞通常来自于Java框架、.NET框架的自身漏洞。
  • 拒绝服务攻击:攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接。
  • 开发语言安全:编成语言自身的漏洞。
  • Web服务器配置安全:web服务器都有一系列的安全设置,以保护 Web 服务器免受各种安全威胁和攻击,确保 Web 服务器的可用性、机密性和完整性。通常包括操作系统和软件安全更新、网络防御配置、数据传输加密、日志监控等模块。

三、业务逻辑安全问题

  业务逻辑漏洞挖掘一直是安全测试中“经久不衰”的话题。相比SQL注入、XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题,这类问题往往危害巨大,并且传统的安全防御设备和措施收效甚微。主要包括如下几方面:

  • 前端绕过:前端校验只能增加用户体验,后端校验才能真正保障接口安全性,一切来自前端的数据都不可信。
  • 数据重放:数据重复提交,通常攻击者会将盗取已经发送过的数据再次提交以欺骗服务器返回数据,或者导致服务器重复操作。
  • 流程绕过:业务逻辑拆分需考虑风险,防止用户绕过某些节点,执行后面的流程。
  • 高并发攻击:业务端的条件竞争,一般的方法是设置锁来防范。
  • 暴力破解:利用计算机程序自动化地生成可能的密码组合,并将其提交到目标系统进行验证,直到验证通过。

四、数据库安全问题

  数据库安全是指采取各种安全措施对数据库及其相关文件和数据进行保护。数据库系统的重要指标之一是确保系统安全,以各种防范措施防止非授权使用数据库,主要通过DBMS实现的。数据库系统中一般采用用户标识和鉴别、存取控制、视图以及密码存储等技术进行安全控制。

  数据库安全的核心和关键是其数据安全。数据安全是指以保护措施确保数据的完整性、保密性、可用性、可控性和可审查性。由于数据库存储着大量的重要信息和机密数据,而且在数据库系统中大量数据集中存放,供多用户共享,因此,必须加强对数据库访问的控制和数据安全防护。

  数据库安全的因素有以下几点:

  • 权限滥用:如果用户拥有不受限制或过多的权限,数据库的安全性可能会受到不可预知的误操作。
  • 数据丢失:不完整或失败的备份可能导致数据丢失无法找回。
  • 非法登录:薄弱或无效的密码策略可能导致系统被入侵。
  • 数据泄漏:人为或者黑客攻击可能导致敏感数据泄漏。
posted @ 2023-06-21 11:12  我若安好,便是晴天  阅读(70)  评论(0编辑  收藏  举报