自从电脑问世以来,一直有一些人试图破解电脑。1965年,麻省理工的William D. Mathews发现了在IBM7094平台上多路信息计算系统(Multics)兼容分时系统(CTSS)密码文件的一个缺陷;大约在1971年,John T.Draper 发现了一个谷物玩具口哨可以提供免费电话呼叫;当计算机存在的时候,Chaos计算机俱乐部,cDc社区,2600,臭名昭著的Kevin Mitnick,甚至计算机教父艾伦 图灵和他在二战德国英格玛密码克星炸弹,都参与了计算机破解。
从1980到1990,世界开始见证了个人电脑,互联网和万维网的问世。无数家庭中的电话线通过拨号连接发出刺耳的声音。AOL,CompuServe,Juno开始为家庭用户提供信息协议和接入网络的网关。信息时代和信息安全时代到来了
每天有无数的人更新组织网站,其背后的技术也如此。网站有静态的文本和图像过渡到动态迎合定制内容的网站程序。在浏览器中,HTML,CSS和JS变得更强大的组织内容系统。浏览器自身也在演变,从IE到Netscape,从Firefox到Chrome,等等。PHP和Perl CGI同其他语言一样,成为了网站终端实时生成HTML和其他浏览器渲染的元素的脚本的一种选择。数据库系统变化无常,MySQL成了最流行的系统。实际上,很多的事物变化无常--.com气泡?但是一件事仍然重要:web程序安全。
安全守护者 - OWASP等
2001年12月成立了开放Web应用安全项目,作为一个互联网非盈利组织并针对网络安全讨论和进步。 实际上,OWASP尽可能地追踪每种类型的黑客。社交工程,薄弱的认证系统,跨站脚本,SQL注入,一般的软件漏洞等等,OWASP保持追踪并鼓励网络社区尽可能地保护网络安全。随着互联网的发展,并通过OWASP和它的参与者的努力,有名的黑客也不例外,事情发生了变化。然而,在所有类型的安全攻击中,注入几乎是唯一地保持在前十的攻击方式(通常是特定的数据库SQL注入)
OWASP把注入定义为“不可信的数据被发送到解释器作为命令或查询的一部分”。通常,这种方式允许攻击者未授权地访问web应用中数据库的数据,或者允许他们插入或者选择一条已经存在的数据。之所以这样是因为web应用使用用户的输入直接插入记录到数据库查询而没有任何类型的处理。
紧接着,可能有人会想,为什么任何人允许未处理的数据流入数据库查询?事实上,如果我们有这个问题的答案,我们可能会得到美国国防部的亿万的美元。
插曲:什么是SQL注入?
在进一步讨论之前我们想暂停一下,确保你,我们珍贵的读者能够理解什么是SQL注入和其后的技术层面。为了简洁和集中注意力,我们假设从这里你理解了SQL注入,和它是如何工作以及基本的预防方法。
如果你不能做到,请首先参看文章SQL注入你需要知道的事 并留心后续的文章,而我们则继续深入这个不变的安全问题。理解SQL注入背后的技术有助于突出简单的事物,和这个重复的安全漏洞的荒谬。
回放:SQL注入的历史教训
只要有关系数据库存在,就有SQL注入攻击的媒介。自1999年起,就有了常见漏洞曝光 词典来追踪并警告用户和开发者类似的软件漏洞。2003年之后,SQL注入仍然在CVE列表中排前10.在2003年到2011年,有3260种漏洞。
2012年,Barclaycard的一个代表声称97%的数据泄露都是由SQL注入引起的。2011年年尾和2012年年首,在不到一个月的时间里,超过百万的网页遭受到LilupophilupopSQL注入攻击.2008年见证了由于SQL注入引起的经济失调。甚至在2010年秋季,联合国官方网站也遭受SQL注入攻击。
所有这些统计数据(当然排除了CVE统计)都是过去三年以内的。仅仅三年时间。这也难怪在2011年美国国土安全局,Mitre和SANA研究所都把SQL注入作为第一危险的安全漏洞。所以,14年之后,它仍然是首要的貌似难以修复的漏洞。
易下手的漏洞 : 在疏忽中学习或执着
在伦敦大学金匠学院的近期研究中,科研人员得出了一个结论:我们的大脑不易改变所以我们人类往往不会轻易地在我们的错误中进步。开发者看到并全面认识到软件开发中的一些错误,但是他们内心里却不能战胜并避免犯下过去这些反复的失误,这或许是件简单的事。或者他们见树不见林,即他们完全理解技术细节却没有看到知识应用的宏图。
至于易下手的漏洞,SQL注入让它们变成了一个礼物,它保证攻击者具有易获得非法访问网站或者其他SQL后台系统。这个结论是基于成功的概率得到的,如果14年的历史数据可信的。从根本上来讲,这主要是由于大多数显而易见的问题:我们仍然使用关系SQL数据库。