php用户提交的数据
程序员文章站
2022-03-26 13:44:51
...
很多 PHP 程序所存在的重大弱点并不是 PHP 语言本身的问题,而是编程者的安全意识不高而导致的。因此,必须时时注意每一段代码可能存在的问题,去发现非正确数据提交时可能造成的影响。
Example #1 危险的变量用法
<?php // 从用户目录中删除一个文件,或者……能删除更多的东西? unlink ($evil_var); // 记录用户的登陆,或者……能否在 /etc/passwd 添加数据? fwrite ($fp, $evil_var); // 执行一些普通的命令,或者……可以执行 rm -rf * ? system ($evil_var); exec ($evil_var); ?>
必须时常留意你的代码,以确保每一个从客户端提交的变量都经过适当的检查,然后问自己以下一些问题:
此脚本是否只能影响所预期的文件?
非正常的数据被提交后能否产生作用?
此脚本能用于计划外的用途吗?
此脚本能否和其它脚本结合起来做坏事?
是否所有的事务都被充分记录了?
在写代码的时候问自己这些问题,否则以后可能要为了增加安全性而重写代码了。注意了这些问题的话,也许还不完全能保证系统的安全,但是至少可以提高安全性。
还可以考虑关闭 register_globals,magic_quotes 或者其它使编程更方便但会使某个变量的合法性,来源和其值被搞乱的设置。在开发时,可以使用 error_reporting(E_ALL) 模式帮助检查变量使用前是否有被检查或被初始化,这样就可以防止某些非正常的数据的挠乱了。
推荐阅读
-
同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)
-
详解iOS App开发中session和coockie的用户数据存储处理
-
PHP5中使用mysqli的prepare操作数据库的介绍
-
PHP后台备份MySQL数据库的源码实例
-
Python模仿POST提交HTTP数据及使用Cookie值的方法
-
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
-
Android App端与PHP Web端的简单数据交互实现示例
-
php导出csv格式数据并将数字转换成文本的思路以及代码分享
-
使用php批量删除数据库下所有前缀为prefix_的表
-
PHP防止post重复提交数据的简单例子