关于安全性问题

#1 jaykon

比如我在地址里输入

/index.php?c=cl&a=a&id=1 select
它会爆出
SELECT * FROM files WHERE proj_id=1 select ORDER BY file_id
执行错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select ORDER BY file_id' at line 1
看了一下手册:

过滤

在SpeedPHP框架的数据库功能中,数组作为参数的情况下,输入的值都会经过“防SQL注入”的过滤。而在字符串参数和SQL直接运行的情况下,开发者应该自行使用spModel的escape函数进行“防注入”过滤,以保证数据库安全。

建议对由用户输入的,显示在页面的数据,进行XSS过滤。过滤的函数可以使用PHP函数htmlspecialchars、strip_ tags、和str_replace等函数进行过滤和转换


觉得有点不够具体,希望能提供一些例子和现成代码。

2011-03-30 17:28:06

#2 jake

上面你的ID是直接通过字符串形式载入了。

看这里http://speedphp.com/database-safe.html

2011-03-30 17:58:24

#3 jaykon

明白,谢谢!

2011-03-30 19:11:10