Web 应用系统存在哪些突出的安全问题
Web应用系统存在以下这些突出的安全问题:
未验证参数:Web请求返回的信息没有经过有效性验证就提交给Web应用程序使用。攻击者可以利用返回信息中的缺陷,包括URL、请求字符串、cookie头部、表单项,隐含参数传递代码攻击运行Web程序的组件。
访问控制缺陷:用户身份认证策略没有被执行,导致非法用户可以操作信息。攻击者可以利用这个漏洞得到其他用户账号、浏览敏感文件、删除更改内容,执行未授权的访问,甚至取得网站管理的权限。
账户及会话管理缺陷:账户和会话标记未被有效保护。攻击者可以得到密码、解密密钥、会话Cookie和其他标记,并突破用户权限限制或利用假身份得到其他用户信任。
跨站脚本漏洞:在远程Web页面的html代码中插入的具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面时,嵌入其中的脚本将被解释执行。最典型的例子就是论坛处理用户评论的应用程序,这些有跨站脚本漏洞的应用程序会向客户端返回其他用户先前输入的内容,–些网站的错误处理页面也存在此类问题。浏览器收到了嵌入恶意代码的响应,那么这些恶意代码就可能被执行。
缓冲区溢出:Web应用组件没有正确检验输入数据的有效性,倒使数据溢出,并获得程序的控制权。可能被利用的组件包括CGI,库文件、驱动文件和Web服务器。
命令注入漏洞:Web应用程序在与外部系统或本地操作系统交互时,需要传递参数.如果攻击者在传递的参数中嵌入了恶意代码,外部系统可能会执行那些指令。比如SQL注入攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。
错误处理问题:在正常操作没有被有效处理的情况下,会产生错误提示,如内存不够、系统调用失败、网络超时等。如果攻击者人为构造Web应用不能处理的情况,就可能得到一些反馈信息,就有可能从中得到系统的相关信息。系统如何工作这样重要的信息显示出来,并且暴露了那些出错信息背后的隐含意义。例如,当发出请求包试图判断-一个文件是否在远程主机上存在的时候,如果返回信息为“文件未找到”则为无此文件,而如果返回信息为“访问被拒绝”则为文件存在但无访问权限。
密码学使用不当:Web应用经常会使用密码机制来保护信息存储和传输的安全,比如说