常见的漏洞
常见的漏洞攻击和防范
国际知名的开放式 Web 应用程序安全项目(Open Web Application Security Project,OWASP)定期发布 OWASP Top 10,总结了十大 Web 应用安全风险及其防范措施,为漏洞攻击与防范提供了重要的参考指南。


注入类漏洞
注入攻击(Injection)是指未成功阻止带有语法含义的输入内容,从而导致对数据库信息的非法访问,具体包括 SQL 注入、OS 命令注入、XPATH 注入、LDAP 注入、JSON 注入、URL 注入,以 SQL 注入最为流行。
注入漏洞的基本原理是攻击者发送的恶意(不可信)数据通过欺骗解释器,从而执行计划外的命令或在未获得恰当授权时访问数据。
会话劫持类漏洞
HTTP 本身是无状态的,需要利用会话管理机制来识别连接。身份认证的结果大多是获得一个令牌并放在 cookie 之中,此后的用户身份识别将依据此授权令牌进行,不需每次登录。
会话劫持漏洞的基本原理是攻击者使用认证或会话管理功能中的漏洞(如暴露的账户、密码或会话 ID)来假冒用户。系统开发人员通常会建立自定义的认证和会话管理方案,但这些方案在实现中经常会在密码管理、超时、退出、账户更新等方面出现漏洞。
跨站脚本类漏洞
跨站脚本攻击(Cross Site Scripting,XSS)是指攻击者利用浏览器中的解释器发送基于文本的攻击脚本。XSS 允许恶意 Web 用户将攻击脚本(HTML 代码、客户端脚本)植入到提供给其他用户访问的 Web 页面或资源中。
如攻击脚本被嵌入成功,一旦无保护能力的机器访问该页面或资源,脚本就会启动,攻击者能在受害者的浏览器中执行脚本,以劫持用户会话、破坏网站、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器等。
跨站脚本攻击有存储式、反射式、基于 DOM(DOM-based)三种。
缓冲区溢出类漏洞
缓冲区溢出(Buffer Overflow)是一种常见的高危漏洞,溢出是指在程序的缓冲区中写入超出其长度的内容,造成对其相邻存储空间的覆盖,从而破坏程序的堆栈,导致程序崩溃或使程序转而执行其他指令,以实现攻击目的。
造成缓冲区溢出的根本原因是:在 C/C++等高级语言中,程序将数据读入或复制到缓冲区中时,所用函数缺乏边界检查机制,未对用户输入的参数进行严格检查。

