PHP的Readfile方法存在安全问题

时间:2011-01-25 21:59:37

标签: php security fopen readfile

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

3 个答案:

答案 0 :(得分:3)

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

然而,一些奇怪的人可能会使用您的服务器来执行Web请求,以便通过发出未经授权的请求或导致超载来使您的服务器遇到麻烦,因此您在编写此类功能时需要牢记这一点。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

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

在我的脑海中,那些让我觉得你将会遇到关于readfile的两个最可能的攻击媒介。