软件常见的安全测试内容

        安全测试是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。应用程序级安全测试的主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力。

一些常见的软件安全问题有:

• 缓冲区溢出

• SQL注入

• 跨站脚本攻击

• 跨站请求伪造

• SSL协议攻击

缓冲区溢出

         缓冲区溢出是向程序缓冲区编写超过其长度的内容造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击目的。

         造成溢出的原因是程序中没有仔细检查用户输出的参数,如下代码

void mytest(char*str){

Char buffer[100];

Strcpy(buffer,str);

}

void mytest2(){

    //validate useraccount function code

}

         如果str的长度大于100B,会填满buffer字符串,并且继续覆盖本地变量的值,可能会覆盖mytest的返回地址,并进而覆盖函数mytest2()执行代码的内容,造成buffer的溢出使程序运行出错。如果覆盖了account验证的函数,黑客就可能获得访问系统的权限。

跨站脚本(XSS)

        漏洞是指web应用程序从恶意用户得到输入,不用验证就直接回显。如果这种回显由恶意的可被浏览器解析的脚本代码生成,一旦受害浏览器单击了包含回显的链接,则受害浏览器将会执行这些恶意代码,从而受到攻击。

如:

软件常见的安全测试内容_第1张图片

XSS涉及攻击者将恶意代码插入到网站中,网站通常会展示很多的由不同用户自己创建的内容,如用户自己编写文章,发表评论,上传图片视频或数据来源自第三方网站等。然而这些数据无法完全控制,是不可信任数据,需要小心对待。这是因为恶意代码通常是HTML和JavaScript的混合,一旦触发XSS攻击,可以让攻击者获取如下信息

• DOM信息

• 网站的cookie

• 回话令牌:登录网站时,用以区分和其他用户的信息

这些信息可能使得攻击者获取用户账号信息。如

你可能感兴趣的:(软件常见的安全测试内容)