gpt4 book ai didi

php - 哪些 PHP 函数受 allow_url_fopen 影响?

转载 作者:可可西里 更新时间:2023-11-01 01:11:28 26 4
gpt4 key购买 nike

在 PHP 中,allow_url_fopen flag 控制远程 URL 是否可以是 used by various file system functions , 以便访问远程文件。

现在推荐的安全最佳做法是禁用此选项,因为它是一个潜在的攻击媒介。但是,如果禁用该设置,任何依赖此功能才能工作的代码都将被破坏。例如,我知道至少有一个 reCaptcha 插件使用 file_get_contents() 访问 Google API,因此依赖于这个标志。

为了检查我们应用程序中的代码以确定禁用此标志是否安全(以便在必要时重写),我需要它影响的 PHP 函数的规范列表。但是,我一直无法找到这样的列表 - PHP 网站上似乎没有这样的列表,而且 Google 搜索也没有找到任何结果。

  • 谁能提供其行为受 allow_url_fopen 影响的所有 PHP 函数的列表?

接受的答案应引用权威来源或提供有关用于编制列表的方法的详细信息,以证明其正确性和完整性。

最佳答案

函数列表非常庞大,因为 allow_url_fopen ini 指令是在 PHP 的流系统中实现的,这意味着任何使用 PHP 网络流的东西都会受到影响。

这包括几乎所有不使用外部库访问远程文件的 PHP 扩展的函数。由于 cURL 等一些扩展在 PHP 之外使用了自己的传输层。

一些扩展,臭名昭著的 ext/soap 确实以某些方式绕过了这个指令(我不完全知道是什么原因,因为我不熟悉这个扩展的内部结构)。

标准库中的任何函数(实现于:main/Zend/ext/standardext/spl ),这意味着每个文件系统、流、包含和 URL 包装器都遵守此指令。从我的脑海中,我也知道 ext/exif 可以做到这一点。

我不记得是否有基于 XML 的扩展(例如 ext/libxmlext/simplexmlext/xmlreader , ext/xmlwriter, ext/dom) 这样做,但我敢肯定过去有一点他们不尊重它,因为路径是直接的提供给下面的 LibXML2。

关于php - 哪些 PHP 函数受 allow_url_fopen 影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55313024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com