php安全技术实现php基本安全
1。不要依赖于注册全局变量的函数(register_globals)一个注册全局变量的出现使得PHP很容易使用,但它也降低了安全性(方便经常破坏安全)。建议register_globals命令被关闭时,编程,和这个函数将被取消在php6。
2。在使用变量之前初始化它。
如果register_globals功能被激活,即使程序员不使用它,恶意用户可能会利用初始化变量的漏洞来入侵我们的系统。例如:
如果(条件){
$auth =真;
}
如果变量未初始化$auth假前这段时间,用户可以通过_get美元{ 'auth},{认证_post美元}或{ } _cookie美元'auth的脚本来实现验证容易。
三.测试和净化所有输入数据。
4。使用变量引用以包含文件时要小心。
如果脚本中有这样的代码:
要求(页);
我们应该确保$页不是来自外部资源(如_get美元),或如果它来自外部的资源,我们必须确保它包含适当的值。
5。在任何服务器上执行命令的功能应该更加小心。
这些功能包括eval(EXEC),(系统),(通过)、Popen()、()和反引号(` `)。这些功能都可以在服务器上执行命令,不能随意使用。如果你必须在命令中包含一个方便的一个,你应该这个变量进行彻底的安全检查。你也应该用escapeshellarg()()escapeshellcom额外的预处理。
6。更改默认会话目录,或使用数据库保存会话数据。
7。不要使用浏览器提供的文件名来保存服务器上传的文件。
8。如果提交的数据需要重新显示在网页中,一定要注意,更重要的是,HTML,Javascript
可以使用这个函数
字符串htmlspecialchars(字符串{,int quote_style {,} }字符编码)
处理提交的数据
9、不要在站点上暴露PHP错误信息。
PHP错误信息可以帮助您检查开发过程中错误信息的输出,但如果暴露在Web上,它可能是攻击者的条目。
10。防止SQL注入攻击。
一个数据库逃生功能应该用在一个特定的语言,如mysqli_real_escape_data(),确保提交的内容,不破坏查询操作。
11。不保存phpinfo()在服务器端脚本。