小白提问:是什么保证了 wp-config.php 无法被访客访问?

2016-08-16 17:12:30 +08:00
 Tony2ee
2174 次点击
所在节点    问与答
17 条回复
lincanbin
2016-08-16 17:18:43 +08:00
那个页面并没有输出任何内容。
编程语言运行后输出的是结果,而不会输出源码。
Tony2ee
2016-08-16 17:24:50 +08:00
@lincanbin 那访客是可以下载到该文件的吗?
66beta
2016-08-16 17:25:00 +08:00
游客访问了啊,游客进入你 WP ,必然会 include 到 wp-config.php
maijiawei
2016-08-16 17:27:16 +08:00
没有输入任何内容,相当于下载了一个空白的页面
Tony2ee
2016-08-16 17:27:36 +08:00
@66beta 那是如何保证 wp-config.php 中数据库和密码的信息不被泄漏的呢
66beta
2016-08-16 17:28:30 +08:00
@Tony2ee 单纯访问网站是看不到代码的,除非黑进你的服务器
ss098
2016-08-16 17:31:01 +08:00
游客访问这个页面会经过 PHP 引擎的处理,这个页面的返回空的内容经过 Web 服务器传给用户。

如果你的 PHP 引擎没有配置成功会导致该文件被下载。
awanabe
2016-08-16 17:31:17 +08:00
LZ 没有搞清楚一件事情, 就是用户下载到的文件是 compile 之后的文件, 其实就是空白的。 只要你不是开了目录访问类似于 ftp ,这样是可以看到 php 代码的。走 http server 其实最后输出的都是 html
lincanbin
2016-08-16 17:31:41 +08:00
@Tony2ee 你直接跑一个 exe 文件,你会看到源码吗?
Tony2ee
2016-08-16 17:31:46 +08:00
@66beta 那访问 php 的网站实际上浏览器只是显示执行 php 文件输出的结果是嘛
66beta
2016-08-16 17:33:00 +08:00
@Tony2ee 是的,除非你 web server 配错...
bk201
2016-08-16 17:34:27 +08:00
被容器过滤掉了,实际是 php 输出的 html
Pastsong
2016-08-16 17:34:33 +08:00
因为你的 HTTP 服务器配置了所有访问 .php 文件的请求都要转给 PHP 引擎来处理, PHP 引擎是不会输出源码的。如果你网页服务器配置有问题可能会输出源文件
kindjeff
2016-08-16 17:35:46 +08:00
因为别人一个请求过来,你的 web server 发现这是一个.php 文件,于是执行了它,然后返回它的返回值。如果你 web server 设置的是.php 文件直接返回,别人就能下载了。
jasontse
2016-08-16 17:37:21 +08:00
因为这个文件的扩展名是 .php 呀, Web Server 会让 PHP 解释器运行它,脚本的运行逻辑怎么会输出给客户端?这个文件里就没写要直接输出的东西。
Tony2ee
2016-08-16 17:47:18 +08:00
@jasontse
@kindjeff
@Pastsong
@bk201
@awanabe
谢谢你们的讲解 感谢已发
xdeng
2016-08-16 17:57:47 +08:00
nginx 里

location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
include /xxxxx/nginx/conf/fastcgi_params;
}

就会转给 php 处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX