浏览器如何允许下载php文件而wget没有?[MediaWiki安装]

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (669)

在MediaWiki的安装过程中,我不得不下载一个名为的文件LocalSettings.php。当我通过点击下载链接下载它时,它会下载一个php文件,但是当我通过“复制链接地址”下载并使用它时

$ wget URL -O output

它下载一个html文件。

以下是我的一些研究:

但我不明白如何点击“下载文件”链接DOES下载php文件。这让我觉得必须是一个方法下载php文件与一些bash命令,如wgetcurl

请告诉我浏览器是如何做到的,以及通过termianl执行此操作的任何其他方式。

提问于
用户回答回答于

你的浏览器有cookie,wget没有,它几乎肯定是一个受cookie保护的文件,只有那些有正确(认证?)cookie的人才能访问该文件,wget不能。在chrome中打开开发人员控制台,导航到Network选项卡,在chrome中下载文件,在网络选项卡中找到请求,右键单击选项卡并按“copy as curl”,你会看到请求的样子饼干,它看起来更像是:

卷曲' https://stackoverflow.com/posts/validate-body ' -H“的Cookie:省= 5fad00f3-5ed3-bd3b-3a8a; _ga = GA1.2.20207544.1508821; SGT = ID = e366-9d13-4df2-84de-2042; _gid = GA1.2.129666.1538138077; ACCT = T = Jyl74nJBTyCIYQq5mc2sf&S = StN3CVV2B5Opj051ywy7' -H '起源:https://stackoverflow.com ' -H '接受编码:gzip,放气,BR' -H“接受语言:EN-US,EN; Q = 0.9 '-H'用户代理:Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 69.0.3497.100 Safari / 537.36'-H'内容类型:application / x-www -形式进行了urlencoded; charset = UTF-8'-H'接受:/ '-H'referer:https//stackoverflow.com/'-H'权限:stackoverflow.com'-H'x-requested-with:XMLHttpRequest' - data $'body =你的+浏览器+有+ cookies%2C + wge&oldBody =&isQuestion = false' - 压缩

  • 如果你在bash中运行该命令,你可能可以从终端下载文件。
用户回答回答于

正如您在相关问题中看到的那样,您只能通过请求文件来下载PHP源代码,至少只要HTTP Server启用了PHP扩展即可。

但这绝不意味着在适当的情况下你无法下载PHP脚本。

您可以在服务器中使用PHP脚本作为代理来绕过PHP解析并向您发送服务器中任何PHP文件的源代码。它只需要设置一些标题并通过简单的方式将它交给您readfile(filename)。当然,这通常是在确保您获得授权后完成的。

此外,链接的地址并不总是您单击链接时实际访问的地址。它可能包含一个onclick覆盖它的动作,href它可以动态放置在那里,所以即使你检查HTML源代码也不会知道它。

找出链接实际执行操作的一种简单方法是在Firefox或Chrome中按Ctrl + Shift + C,转到“网络”选项卡,然后单击链接以查看其实际访问的内容。

我敢打赌它不会像你想象的那样直接访问文件。

扫码关注云+社区

领取腾讯云代金券