4

嘿。readfile在 PHP 中使用该方法时,我应该担心哪些安全问题?我想使用 readfile 方法接收存储在各种第三方服务器上的文件的 URL。然后我将文件提供给用户。直观地说,似乎存在风险,因为 URL 可以指向任何文件。另一方面,我只使用该readfile方法(在处理一些与文件无关的数据之后)并且不确定这是否会允许在我的服务器上执行任何恶意操作。另外,根据手册,如果我想使用带有 的 URL readfile,我需要启用fopen wrappers. 谢谢。

4

3 回答 3

3

readfile不会在您的服务器上执行代码,因此那里没有问题。

但是,一些奇怪的人可能会使用您的服务器执行 Web 请求,以便通过发出未经授权的请求或导致过载使您的服务器陷入困境,因此您在编写此类功能时需要牢记这一点。

根据手册,如果我想使用带有 readfile 的 URL,我需要启用 fopen 包装器

是的,您需要确保allow_url_fopen已打开。如果不是,您将不得不考虑使用cURL

于 2011-01-25T22:05:43.233 回答
2

最大的安全风险是注入格式错误的请求以从您的文件中提供文件。即,传递相对路径。

如果您不小心,Allow_url_fopen 也是一个安全风险。它可以允许通过 readfile()、include() 等服务的请求来解释 PHP 代码,如果这是返回的请求。

于 2011-01-25T22:48:10.360 回答
2

我认为你只需要关注两件事:

1) 不允许您的用户指定readfile 读取哪个文件。(潜在的目录遍历攻击等)

2) 不允许用户修改readfile 读取的文件。(各种恶作剧的可能性!)

在我的脑海中,这些让我印象深刻的是你会遇到的关于 readfile 的两个最有可能的攻击媒介。

于 2011-01-29T20:44:13.430 回答