复习下PHP安全的基础知识:
1)关闭注册全局变量功能
即是在php.ini中register_globals=off(也是默认)。它决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。 如果register_globals=on, 客户端提交的数据中含有GLOBALS变量名, 就会覆盖服务器上的$GLOBALS变量。
2)在使用变量之前,进行初始化。
3)过滤全部输入数据。
其方式主要取决于数据的类型。
4)防止SQL的注入。
应该使用特定语言的数据库转义函数。如mysql_real_escape_data()。
5)谨慎使用执行命令的函数。
如eval(), exec(), system(), passsthru(), popen(), 反撇号(`)。如果在命令中含有变量,无比进行安全检查。还应该再使用escapeshellarg()和escapeshellcom()进行预处理。
6)谨慎使用变量引用包含文件。
7)session会话安全。可改变其默认目录或利用数据库存储其数据。
8)重命名通过HTTP(浏览器)上传的文件。
9)隐藏站点错误消息,把错误报告级别设置为最高。
10)在显示提交的数据时,过滤其HTML和Javascript(如可用strip_tags()函数)
等等