Sai*_*nan 8 php file-get-contents
file_get_contents()鉴于URL,我目前正在使用获取网页的标题.在wamp上,这非常好用.但是,当我把它转移到我的网络服务器时,我遇到了一个问题,它引导我得到这个答案.(这是设置allow_url_fopen为1).
设置此功能是否存在重大安全风险?如果是,是否有其他方法可以从URL本身获取网页标题?
(另外,不确定标签,所以如果合适,请随意添加/删除!)
编辑(1):进一步的研究引导我提出这个问题,它几乎说它也是一个风险,并且如果应用程序不需要它就禁用它.不幸的是,这并没有告诉我所涉及的风险.
编辑(2):快速注释,我将使用此功能与用户输入(URL),而不是内部,这就是为什么我想确保绝对没有涉及安全风险
这只是您可能希望allow_url_fopen设置为0的一个原因
假设您允许用户输入网址,并让您的服务器获取此网址.
您可能会编写类似这样的代码: - 您不应该对此进行编码 -
echo file_get_contents($_POST['url']);
Run Code Online (Sandbox Code Playgroud)
问题是这里存在安全问题.有人可以传递文件路径而不是URL,并且可以访问服务器的文件.
例如,有人可能会传递/etc/passwd为url,并且能够查看其内容.
现在,如果allow_url_fopen设置为0,则不会file_get_contents用于获取URL,您将使用CURL.
allow_url_fopen很好.如果您需要该功能,请启用它.有更好的工具可以从远程URL加载数据(比如curl扩展),但它对于一些简单的用例来说已经足够了.
它密切相关的allow_url_include,是不是安全的.它允许功能,如include()与require()加载和从远程URL运行代码,这是一个非常糟糕的主意.让那一个关掉.
在过去,allow_url_include并不总是作为一个独特的选项存在,因此有必要allow_url_fopen关闭以防止编写错误的脚本包含来自远程URL的数据.但事实并非如此.
| 归档时间: |
|
| 查看次数: |
13402 次 |
| 最近记录: |