jiuhong deng | php Sunday 26-Oct-2008
zhanzuo.com的一个漏洞
//点击这里, 你可以看到服务器上的 /etc/passwd 里面的内容就会爆出来。仔细看一下URL。
// 注: 其中char(47,101,116, 99,47,112,97,115,115,119,100)是'/etc/passwd' 字母分割成一个一个后ord()一下生成的
#原理很简单,估计它查询是这样的
$user_id = $_GET['user_id'];
// 要解决很简单,直接 $user_id = (int) $_GET['user_id'];就行了。
SELECT * FROM user WHERE user_id = {$user_id}
然后$user_id 没有加任何的过滤。 大家注意啊,每一条SQL语句,新手特别容易错过 SELECT 查询的过滤。
我们Hellochina.com程序层采用的是我们自己写的一套MVC架构,所有的uri 都 rewrite 到 index.php ,然后建立一个统一处理uri请求的类,在一次请求启动的时候,加上层层的安全检测和过滤,安全性无疑比上面的要强多了。^_^,后面会慢慢和大家分享这个框架。
