在PHP中我应该允许“allow_url_fopen选项”?(Should I allow '

2019-06-18 10:34发布

我们有几个开发商要求allow_url_fopen我们的服务器上启用。 什么是规范的这些天,如果libcurl启用了有什么好的理由让?

环境是:Windows 2003中,PHP 5.2.6,FastCGI的

Answer 1:

你一定要allow_url_include设置为OFF,这减轻了许多的风险allow_url_fopen为好。

但因为不是PHP的所有版本都allow_url_include ,许多最好的做法是关闭的fopen。 像所有功能,但现实是,如果你不需要它为您的应用程序,禁用它。 如果你需要它,卷曲模块大概可以做的更好,并重构你的应用程序中使用卷曲禁用allow_url_fopen可以阻止至少确定饼干。



Answer 2:

我认为答案归结到你如何相信你的开发人员能够负责任地使用该功能? 从外部URL数据应该像对待其他任何不受信任的输入,只要是了解,有什么大不了的?

我看到它的方式是,如果你把你的开发人员喜欢孩子,从来没有让他们去处理尖锐的东西,那么你就必须开发谁从来没有学会编写安全代码的责任。



Answer 3:

跨站点脚本攻击是一种痛苦,所以这是对一票。 你绝对应该有“ allow_url_include ”设置为关闭,或者你会为受伤的世界是英寸



Answer 4:

这取决于发展类型。 如果您的原型,然后启用“allow_url_fopen选项”是好的但没有的libcurl和的file_get_contents和使其之间的显著速度差仅为方便起见。

对于生产服务器的libcurl任何呼叫应该被标记为安全审计。 至于应的fopen和的file_get_contents如果“allow_url_fopen选项”已启用。 禁用“allow_url_fopen选项”并不能阻止攻击它只是稍微限制了他们可以做的方式号码。



Answer 5:

最大的问题是allow_url_fopen已不是更安全 ,因此,如果你想从使用curl一个URL保存文件,你必须从FOPEN / file_get传递到保存文件。

  • 卷曲只有好的检索来自远程URL内容。 (allow_url_fopen选项不是必要的)
  • 卷曲必须用F打开或File_get如果你想远程文件保存到服务器中添加。 (allow_url_fopen选项强制性与CURL)

PHP必须找到其他的方法,使之更加安全。



文章来源: Should I allow 'allow_url_fopen' in PHP?