虽然我的
工作经验有四年,但是算是
测试新手,在测试行业混也只有半年的时间,现在在一家外包公司做QA,该公司的业务都是基于B/S结构的,我的测试工作也主要是WEB测试.
其实我知道的关于WEB测试的东西也是纯理论性的,除了要进行功能测试外,还要进行界面测试,兼容性测试,性能测试,安全性测试.
在项目初期我已经把安全性测试纳
入到测试的计划中了,但是苦于不知道如何下手,一直也没有开展这项测试,直到有一天,我们的公司的一位程序员偶然从GOOGLE中搜索到了一个网站,这个
网站报告了我们现有程序中存在着XSS漏洞.我们公司的人基本上都不了解安全性测试,出了这个事件后,安全性测试也被正式提到了测试的工作日程中.
我通过查找资料,总结了一下安全性测试的内容,内容并不完整,有待继续补充.
我们将会从三个方面来讨论安全性测试,首先是安全性问题都包括哪些?其次是如何进行安全性测试?最后是安全性测试工具.
今天主要总结安全性问题都包括哪些.
1.DJANGO的一篇文档中介绍了关于安全性问题包括的内容:http://www.djangobook.com/en/1.0/chapter19
这篇文章的主题思想是:Never — under any circumstances — trust data from the browser.(从不要相信来自浏览器端的数据,因为你永远不可能知道在浏览器进行数据操作是你的用户还是正在寻找攻击漏洞的黑客)
2.安全性问题包括的内容:
SQL injectionis a common exploit in which an attacker alters Web page
parameters (such asGET/POSTdata or URLs) to insert arbitrary SQL
snippets that a naive Web application executes in its database directly.
SQL注入是最常见的攻击方式,它的主要原理是:攻击者通过改变WEB页的参数(如GET/POST数据或是URLS)直接将SQL片断提交到服务器,并在服务器端执行的过程.
Cross-site scrīpting(XSS), is found in Web applications that fail to
escape user-submitted content properly before rendering it into HTML. This
allows an attacker to insert arbitrary HTML into your Web page, usually in the
form of<scrīpt>tags.
Attackers often use XSS attacks to steal cookie and session information, or to trick
users into giving private information to the wrong person (akaphishing).
XSS定义:是由于WEB程序没有对用户提交的HTML内容进行适当的转译,这样攻击者就可能在你的WEB页中插入一些HTML语句,这些语句通过以<SCRITP>TAG的形式出现.
攻击者通常使用XSS攻击来窃取COOKIES 和 SESSION信息,或是欺骗用户将隐私信息暴露给错误对象(又称为钓鱼)
Cross-site request forgery (CSRF) happens when a malicious Web site tricks users
into unknowingly loading a URL from a site at which they’re already authenticated —
hence taking advantage of their authenticated status.
CSRF:通过在
WEB页或在给用户发邮件中插入恶意代码(通常是链接或是脚本),比如发送一个带有银行取款链接的图片或脚本(通常是HTML或JAVAscrīpt),
当用户访问这个图片时,此时页面加载图片过程会隐密地链接到一个远程页面,这个页面会自动向目标站点发起请求,如果这个目标站点的仍保留这个用户的
COOKIE信息,并且这个COOKIER未过期,那么攻击者就可以在用户不知情的情况以用户的身份登录银行或执行取款操作.
CSRF的特性就是利用网站对用户标识的信任,欺骗用户的浏览器发送HTTP请求给目标站点
SQL injection’s less well-known sibling,email header injection, hijacks
Web forms that send email. An attacker can use this technique to send spam via
your mail server. Any form that constructs email headers from Web form data is
vulnerable to this kind of attack.
email header injection 与 SQL注入的原理类似,它的原理是:通过在EMAIL的SUBJECT中输入一些特殊语句如"\n",攻者者可以利用这个缺陷通过你的邮件服务器发送垃圾邮件.
Directory traversalis another injection-style attack, wherein a malicious
user tricks filesystem code into reading and/or writing files that the Web
server shouldn’t have access to.
目录遍历是另一种注入类型的攻击,攻击者欺骗文件系统读或写服务器不允许操作的文件.
During development, being able to see tracebacks and errors live in your
browser is extremely useful.However, if these errors get displayed once the site goes live, they can
reveal aspects of your code or configuration that could aid an attacker.
开发过程中,如果可以看到错误或历史记录对FIX问题是非常有用的.但是如果这些错误信息被攻击者所获取,那么攻击者就可以通过错误信息而了解到应用程序代码或是
数据库或是配置等方面的内容,并为期其行攻击提供有力的帮助.