我应该允许'allow_url_fopen选项'PHP?
-
02-07-2019 - |
题
我们有几个开发问 allow_url_fopen
上启用我们的服务器。什么规范这些天,并且如果 libcurl
启用是否有任何真正理由允许?
环境是:Windows2003,PHP5.2.6,FastCGI
解决方案
您肯定希望 allow_url_include
设置为Off,这也可以减轻 allow_url_fopen
的许多风险。
但是因为并非所有版本的PHP都有 allow_url_include
,所以很多人的最佳做法是关闭fopen。与所有功能一样,现实情况是,如果您的应用程序不需要它,请禁用它。如果确实需要它,curl模块可能会做得更好,重构你的应用程序以使用curl来禁用 allow_url_fopen
可能会阻止最不确定的破解者。
其他提示
我认为答案归结为您如何相信您的开发人员负责任地使用该功能?来自外部URL的数据应该被视为任何其他不受信任的输入,只要了解这一点,有什么大不了的?
我认为,如果你像对待孩子一样对待你的开发人员并且从不让他们处理尖锐的事情,那么你就会让开发人员从不学习编写安全代码的责任。
跨站点脚本攻击是一种痛苦,所以这是投票反对。你绝对应该有“ allow_url_include 一>"设置为关闭,或者你将陷入一个受伤的世界。
这取决于发展的类型。如果您的原型设计然后启用'allow_url_fopen'就可以了,但是libcurl和file_get_contents之间没有明显的速度差异,并且启用它只是为了方便。
对于生产服务器,应标记对libcurl的任何调用以进行安全审核。如果'allow_url_fopen'被启用,应该fopen和file_get_contents。禁用'allow_url_fopen'不会阻止漏洞攻击,只会略微限制它们的执行方式。
最大的问题是, allow_url_fopen选项是不是更安全, 所以如果你想保存的文件从网址使用的卷曲,则必须通过从fopen/file_get保存的文件。
- CURL仅仅是良好的,以远程检索内容的网址。 (allow_url_fopen选项不必要的)
- CURL必须加入与Fopen或File_get如果你想保存的远程 文件服务器。 (allow_url_fopen选项强制性与卷曲)
Php必须找到其他的方法来使它更加巩固。