由于脚本语言和早期版本设计的诸多原因,php项目存在不少安全隐患。从配置选项来看,可以做如下的优化。
1.屏蔽PHP错误输出。
在/etc/php.ini
(默认配置文件位置),将如下配置值改为Off
display_errors=Off
不要将错误堆栈信息直接输出到网页上,防止黑客加以利用相关信息。
正确的做法是:
把错误日志写到日志文件中,方便排查问题。
2.屏蔽PHP版本。
默认情况下PHP版本会被显示在返回头里,如:
Response Headers X-powered-by: PHP/7.2.0
将php.ini中如下的配置值改为Off
expose_php=Off
3.关闭全局变量。
如果开启全局变量会使一些表单提交的数据被自动注册为全局变量。代码如下:
<form action="/login" method="post">
<input name="username" type="text">
<input name="password" type="password">
<input type="submit" value="submit" name="submit">
</form>
如果开启了全局变量,则服务器端PHP脚本可以用 u s e r n a m e 和 username和 username和password来获取到用户名和密码,这会造成极大的脚本注入危险。
开启方法是在php.ini中修改如下:
register_globals=On
建议关闭,参数如下:
register_globals=Off
当关闭后,就只能从 P O S T 、 _POST、