前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP安全核心配置

PHP安全核心配置

作者头像
Andromeda
发布2023-10-21 11:25:20
1580
发布2023-10-21 11:25:20
举报
文章被收录于专栏:Andromeda的专栏

PHP配置文件指令多达数百项,为了节省篇幅,这里不对每个指令进行说明,只列出会影响PHP脚本安全的配置列表以及核心配置选项。

详细参阅官方文档,关于php.ini的配置选项列表。

allow_url_include

如果服务端开启了远程文件包含选项allow_url_include,我们甚至可以直接远程执行PHP代码。但是,这些PHP默认自带的wrapper和filter都可能通过php.ini配置禁用,所以在具体情况还要具体分析。尝试实例,修改php.ini文件,将其设置为on,然后重启apache服务器重新读取php配置。

代码语言:javascript
复制
allow_url_include=On

源网站test的index.php如下

代码语言:javascript
复制
<!-- index.php -->
<?php
if (isset($_GET['file'])) {
    $file = $_GET['file'];
} else {
    $file = "test.txt";
}
include $file;
?>

另一个网站test1的index.php如下

代码语言:javascript
复制
<!-- index.php -->
<?php
echo "ok";

在test站点传递file参数http://test/?file=http://test1/index.php,就能看到页面回显了ok,远程读取并执行了test1的index.php,这个配置选项对于PHP安全的影响不可小觑,在使用的时候必须慎之又慎。

open_basedir

open_basedir将 PHP 可以访问的文件限制在指定的目录树中,包括文件本身。当脚本尝试访问文件系统时,例如使用 include 或 fopen() 时,将检查文件的位置。当文件位于指定的目录树之外时,PHP 将拒绝访问它。在 Windows 中,用分号分隔目录。在所有其它系统上,用冒号分隔目录。现在 Apache 模块将自动继承来自父目录的open_basedir路径。需要注意的点是,open_basedir指定的限制是目录名称,而不是前缀。

例如,修改php.ini

代码语言:javascript
复制
open_basedir = D:\phpstudy_pro\WWW\test\a

a目录下的test.php如下

代码语言:javascript
复制
<!-- test.php -->
<?php
echo file_get_contents('../ac/test.txt');

重启web服务器,进入网页,发现访问被拒绝了。

f3f07fa554de
f3f07fa554de

当使用open_basedir配置目录后,执行脚本访问其他文件都需要验证文件路径,因此在执行效率上面也会有⼀定的影响。   

disable_functions

本指令可用于禁止某些函数。接受逗号分隔的函数名列表作为参数。此指令只能限制内置函数,对用户定义的函数无效。

例如在其中禁用phpinfo函数

代码语言:javascript
复制
disable_functions = phpinfo

在index.php当中调用phpinfo函数,在网页当中报错

79fc5d56c890
79fc5d56c890

display_errors与error_reporting

该选项设置是否将错误信息作为输出的一部分打印到屏幕,或者对用户隐藏。这是辅助开发的功能,不应在生产系统中使用 (例如连接到互联网的系统)。设置为Off时,将不会对用户显示错误信息。

error_reporting用于设置错误报告级别。该参数可以是表示二进制位字段的任意整数或者常量名称。error_reporting 级别和常量是在预定义常量和php.ini中进行了说明。在程序运行时可以通过error_reporting进行设置。在设置display_errors=On时,还可以配置error_reporting,用来配置错误显示的级别。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • allow_url_include
  • open_basedir
  • disable_functions
  • display_errors与error_reporting
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档