码迷,mamicode.com
首页 > 其他好文 > 详细

软件测试对于代码安全的诸多事宜

时间:2015-05-03 23:22:38      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

软件测试对于代码安全的诸多事宜

正如我们所见,软件测试的时候会发生各种各样的问题,尤其是在java语言中,我们可以得知我们的Java语言不同于C/C++等语言,java是解释性语言,因此存在代码被反编译的隐患;每个程序员都可以将任何项目反编译成java代码,导致了我们的代码暴露在他们面前,而某些人便可以通过其进行操作导致某些数据被截取,重新调用。当然在我们真正去编写代码的时候,我们就需要做一些关于代码安全的操作。下面将列出一些关于保证代码安全的知识。

1.1    防止注入SQL

a.除了过滤单引号“ ‘ ”,还要过滤数据库中的注释符号“ -- ”。

b.SQL语句中的字符串拼接,是很不靠谱的;实在要拼接,一定要从代码安全的角度多想想。

1.2    文件上传漏洞

现象:

假设我们使用的是IIS6.0及之前版本,当我们上传一个文件名为【安卓.aspx .jpg】,那么存到服务器上的文件将会是【安卓.aspx】。

原因:

文件名【安卓.aspx .jpg】在“.aspx”和“.jpg”之间有一个蛮像空格的符号,其实是通过16进制编码器修改出来的“ \0 ”,IIS6.0及之前版本对于上传文件名的解析是从左向右的,如果在解析时遇到空格,就认为这个文件名已经结束,于是存在服务器上的文件就是【安卓.aspx】。

解决方案:

我们一般都会对上传文件的后缀名进行检查,但是IIS的漏洞绕过了我们的检查,于是上传文件重命名就是一个不错的解决办法。我们把每次上传文件的后缀拿出来,取个新名字,再加上原后缀,这个问题就可解决。

还有两点:

a.       如果文件名中包含特殊字符,比如【安卓不是苹果.aspx;不是吧.jpg】这是一个文件名,中间包含分号“ ; ”,IIS6.0及之前版本在上传文件时正常,但是在解析时分号“ ; ”之后的文件名都不认。

b.       Apache服务器对上传文件的检查是从右向左的。

1.3    Cookie欺骗

这个应该很简单,大家都知道从哪里可以拿到cookie,怎么伪装cookie,怎么把一台机器上的cookie移到另外一台… Cookie很常用,特别在跨域访问时,我们常常会把用户名加密以后放在客户端。检查用户是否登录,就会去查看这个cookie,那么请别忘了在检查时加上客户端ip一起校验,在一定程度上可以阻止cookie欺骗。

1.4    XSS跨站脚本攻击

 对于这种攻击,我们要对左右尖括号“<、>”、分号“ ; ”、单引号“ ‘ ”进行过滤。我们对于用户输入或者获取来自地址栏的参数值(Request.QueryString["XXX"]),不应支持HTML编码。处理的方法有很多,"HttpUtility.UrlEncode”就是一种。

1.5    其他漏洞

 标签<body>有个属性"onload”,它会把属性中的值直接解析为javascript脚本,而不需要"<script></script>”或"javascript:”。据说淘宝曾经因为不知道这个漏洞,而导致上万的用户受到损失。

  

对于上述的问题我们不仅应该在测试过程中去尝试,也需要在编码过程中去避免。

软件测试对于代码安全的诸多事宜

标签:

原文地址:http://www.cnblogs.com/wangdongT-T/p/4474893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!