gpt4 book ai didi

php - PHP函数parse_ini_file()真的有那么危险吗?

转载 作者:可可西里 更新时间:2023-10-31 23:02:46 25 4
gpt4 key购买 nike

一些托管服务提供商禁用了 PHP 函数 parse_ini_file()。
任何在那里使用它的尝试都将失败,并显示错误“parse_ini_file() 出于安全原因已被禁用”。
这种配置是如此普遍,以至于作为最流行的 CMS 之一的 Joomla 避免直接使用 parse_ini_file() 而是将任务分为两步:

  1. 使用 file_get_contents() 读取文件内容
  2. 使用 parse_ini_string() 解析值,这是奇怪的允许,因此不被视为安全风险(WTF?)

我的问题是,如何使用 parse_ini_file() 可以被视为安全威胁,或者如何禁用 PHP 函数 parse_ini_file() 可以提高安全性?

会不会是骗局?
我的意思是,也许有人在过去的某个地方混淆了 parse_ini_file() 和 ini_set(),并认为 parse_ini_file() 可以更改 PHP 环境的配置。
博主可以在这里和那里提出建议,天真的系统管理员可以在不问自己任何问题的情况下遵循这些建议。

最佳答案

parse_ini_file 的限制试图防范的安全风险是从任意文件读取,而不是解析其内容。

如果您能够读取您通常不应访问的文件(例如,系统的密码文件;或属于另一个用户的用户),则从任意文件读取可被视为安全威胁。即使文件不是 ini 格式,parse_ini_file() 返回的结果仍然可能提供信息。

在 PHP <= 5.3.x 中,parse_ini_file() was restricted什么时候safe mode被启用。在 PHP >= 5.4 中,安全模式被删除(支持要求实际系统级安全性,而不是使用越来越多的功能可以读取的打地鼠游戏的语言以越来越有创意的方式来自任意文件)。

禁止 parse_ini_file() 的建议是一个古老的建议,从安全模式仍然存在的时候开始。它并不比从文件读取的任何其他 PHP 函数更危险。现在禁止 parse_ini_file() 的托管服务提供商(尤其是在 file_get_contents() 打开之后)是被误导的,根据不再有效的旧建议操作,甚至有可疑的好处什么时候有效。

parse_ini_file() 的 PHP 源代码基本上可以归结为调用与 parse_ini_string 相同的代码,只是初始化模式略有不同(因此可以从文件中读取,另一个是字符串)。否则,他们使用相同的代码来实际解析 ini 文件并返回结果。

关于php - PHP函数parse_ini_file()真的有那么危险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35067087/

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