被人遗忘的一些安全问题

这么多年以来,很多web程序被黑过来黑过去的,很多程序员开始认识到一些直接的主要的安全漏洞方式,比如xss/sql-injection等.但是还有很多的安全问题被人遗忘了[包括程序员和代码审计的安全人员]:

1.Url转跳忘记了https

注意安全的一些网站都使用ssl来加固自己的webapp,但是webapp的程序员根本没有意识到这个问题[转跳都是强制使用http],导致ssl成为”花瓶”.

比如phpwind的global.php里的代码:

$R_url = $db_bbsurl = Char_cv(“http://$_SERVER[HTTP_HOST]”.substr($tmp,0,strrpos($tmp,’/’)));
defined(‘SIMPLE’) && SIMPLE && $db_bbsurl = substr($db_bbsurl,0,-7);

老外的几个有名的程序都Surf Jacking流行的时候注意并且fix了这个问题,如wordpress:

function atom_service_url_filter($url)
{
if ( url_is_accessable_via_ssl($url) )
   return preg_replace( ‘/^http:\/\//’, ‘https://’, $url );
else
   return $url;
}

2.Third Party Content攻击
在我的blog里详细说了这个问题:http://hi.baidu.com/hi_heige/blog/item/eaa93c72599b241b8701b0f9.html,但是目前还没有官方有意识的从代码角度上解决这个问题.或者他们根本就不认为这是个安全问题 :(

3.HTTP Response Splitting:

这个问题主要出现在php里的herder() setcookie()等函数里,但这个问题被认为是php的漏洞,php官方也出过补丁:

the PHP interpreter contains protection against the attack since version 4.4.2 and 5.1.2.[1]

但是不知道多少主机还在使用以前的php版本,所以从webapp代码解决这个问题才是王道

4.flash的应用安全

现在很多程序员都注意到了比较传统点的xss漏洞,但是他们忘记了flash里的问题:flash的xss/csrf等安全问题.比如 [sodb]里的SODB-2008-03/SODB-2008-01

5.二次攻击

详细参考2006年的文章:http://superhei.blogbus.com/logs/3209055.html

大家都知道ms的名言:所有输入都是有害的. 但是很多人忘记了,变量经过输入后,经过复杂的传递变换,最终传到函数. 所以根据ms那句名言认为过滤$_GET $_POST $_Cookie了就安全了.但是变量在复杂的传递过程,你的数据很可能被人掉包后给函数. 比如从数据库出来的数据,基本上都没有去注意过滤直接就给了函数,如果攻击着可以控制几的数据库的数据的操作,那就很容易被攻击利用.所以我们应该这样理解: 所有进入函数的值都是有害的.

6.csrf

这个问题随着web2.0安全的火热,很多人认识到了这个问题.国内比较有名的dz/pw很早就使用了one-token.主要是一些asp及其他小型的程序,没有认识到这个问题

…..

[欢迎补充!!]

Posted by superhei

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>