随着现代软件工业的发展,软件规模不断扩大,软件内部的逻辑也变得异常复杂。为了保证软件的质量,测试环节在软件生命周期中所占的地位已经得到了普遍重视。在一些著名的大型软件公司中,测试环节(QA)所耗费的资源甚至已经超过了开发。即便如此,不论从理论上还是工程上都没有任何人敢声称能够彻底消灭软件中所有的逻辑缺陷——bug。
在形形×××的软件逻辑缺陷中,有一部分能够引起非常严重的后果。例如,网站系统中,如果在用户输入数据的限制方面存在缺陷,将会使服务器变成SQL注入***和XSS(Cross Site Script,跨站脚本)***的目标;服务器软件在解析协议时,如果遇到出乎预料的数据格式而没有进行恰当的异常处理,那么就很可能会给***者提供远程控制服务器的机会。
我们通常把这类能够引起软件做一些“超出设计范围的事情”的bug称为
漏洞(vulnerability)。
(1)功能性逻辑缺陷(bug):影响软件的正常功能,例如,执行结果错误、图标显示错误等。
(2)安全性逻辑缺陷(漏洞):通常情况下不影响软件的正常功能,但被***者成功利用后,有可能引起软件去执行额外的恶意代码。常见的漏洞包括软件中的缓冲区溢出漏洞、网站中的跨站脚本漏洞(XSS)、SQL注入漏洞等。
本文节选自电子工业出版社2008年4月出版的
《0day安全:软件漏洞分析技术》一书。
转载于:https://blog.51cto.com/broadviewsec/180685
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110887.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...