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()在服务器端脚本。