在安装MediaWiki期间,我必须下载一个名为LocalSettings.php
的文件。当我通过单击下载链接(恰好是http://localhost/mymediawiki/mw-config/index.php?localsettings=1
)下载它时,它会下载一个php文件,但是当我通过“复制链接地址”并使用
$ wget URL -O output
它会下载一个html文件。
以下是index.php
的内容:
以下是我从wget
获得的内容:
看起来,基本上是提供下载链接的页面(即http://localhost/mymediawiki/mw-config/index.php?page=Complete
)。
以下是我的一些研究:
但是我不明白如何单击“下载文件”链接来下载php文件。这让我想知道这是否是一种使用wget
或curl
之类的bash命令下载php文件的方法。
请告诉我浏览器的工作方式,以及通过termianl进行操作的其他任何方式。
答案 0 :(得分:3)
您的浏览器具有cookie,而wget却没有,它几乎可以肯定是受cookie保护的文件,只有那些具有正确(身份验证)cookie的文件才能访问该文件,而wget不能。在chrome中,打开开发者控制台,导航至“网络”标签,在chrome中下载文件,在“网络”标签中找到请求,右键单击该标签,然后按“复制为curl”,您将看到请求的外观带有 cookie,看起来会更像:
卷曲'https://stackoverflow.com/posts/validate-body'-H'cookie:prov = 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,deflate,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-form -urlencoded; charset = UTF-8'-H'接受: / '-H'推荐人:https://stackoverflow.com/'-H'作者:stackoverflow.com'-H'x要求:XMLHttpRequest '--data $'body = your + browser + has + cookies%2C + wge&oldBody =&isQuestion = false'-已压缩
答案 1 :(得分:2)
正如您在相关问题中所看到的,至少在HTTP Server启用PHP扩展的情况下,您不能仅通过请求文件来下载PHP源代码。
但是,这绝不意味着在适当的情况下您不能下载PHP脚本。
您可以在服务器中拥有一个PHP脚本作为代理,以绕过PHP解析并向您发送服务器中任何PHP文件的源代码。它只需要设置一些标头,然后使用简单的readfile(filename)
即可将其交给您。当然,通常是在确保您被授权后才能完成。
此外,链接的地址并不总是单击链接时实际访问的地址。它可能包含一个覆盖onclick
的{{1}}操作,并且可以动态放置在该位置,因此即使您检查HTML源代码也不会知道它。
弄清楚链接的实际作用的一种简单方法是在Firefox或Chrome中按Ctrl + Shift + C,转到“网络”标签,然后单击链接以查看其实际访问的内容。
我敢打赌它不会像您想的那样直接访问文件。