V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Tony2ee
V2EX  ›  问与答

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

  •  
  •   Tony2ee · 2016-08-16 17:12:30 +08:00 · 2232 次点击
    这是一个创建于 3024 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2016-08-16 17:46:37 +08:00
    谢谢各位耐心的讲解 大体对这个问题的答案有了解了 此贴可以了结了
    lincanbin
        1
    lincanbin  
       2016-08-16 17:18:43 +08:00
    那个页面并没有输出任何内容。
    编程语言运行后输出的是结果,而不会输出源码。
    Tony2ee
        2
    Tony2ee  
    OP
       2016-08-16 17:24:50 +08:00
    @lincanbin 那访客是可以下载到该文件的吗?
    66beta
        3
    66beta  
       2016-08-16 17:25:00 +08:00
    游客访问了啊,游客进入你 WP ,必然会 include 到 wp-config.php
    maijiawei
        4
    maijiawei  
       2016-08-16 17:27:16 +08:00
    没有输入任何内容,相当于下载了一个空白的页面
    Tony2ee
        5
    Tony2ee  
    OP
       2016-08-16 17:27:36 +08:00
    @66beta 那是如何保证 wp-config.php 中数据库和密码的信息不被泄漏的呢
    66beta
        6
    66beta  
       2016-08-16 17:28:30 +08:00
    @Tony2ee 单纯访问网站是看不到代码的,除非黑进你的服务器
    ss098
        7
    ss098  
       2016-08-16 17:31:01 +08:00 via Android   ❤️ 1
    游客访问这个页面会经过 PHP 引擎的处理,这个页面的返回空的内容经过 Web 服务器传给用户。

    如果你的 PHP 引擎没有配置成功会导致该文件被下载。
    awanabe
        8
    awanabe  
       2016-08-16 17:31:17 +08:00   ❤️ 1
    LZ 没有搞清楚一件事情, 就是用户下载到的文件是 compile 之后的文件, 其实就是空白的。 只要你不是开了目录访问类似于 ftp ,这样是可以看到 php 代码的。走 http server 其实最后输出的都是 html
    lincanbin
        9
    lincanbin  
       2016-08-16 17:31:41 +08:00
    @Tony2ee 你直接跑一个 exe 文件,你会看到源码吗?
    Tony2ee
        10
    Tony2ee  
    OP
       2016-08-16 17:31:46 +08:00
    @66beta 那访问 php 的网站实际上浏览器只是显示执行 php 文件输出的结果是嘛
    66beta
        11
    66beta  
       2016-08-16 17:33:00 +08:00
    @Tony2ee 是的,除非你 web server 配错...
    bk201
        12
    bk201  
       2016-08-16 17:34:27 +08:00 via iPhone   ❤️ 1
    被容器过滤掉了,实际是 php 输出的 html
    Pastsong
        13
    Pastsong  
       2016-08-16 17:34:33 +08:00   ❤️ 1
    因为你的 HTTP 服务器配置了所有访问 .php 文件的请求都要转给 PHP 引擎来处理, PHP 引擎是不会输出源码的。如果你网页服务器配置有问题可能会输出源文件
    kindjeff
        14
    kindjeff  
       2016-08-16 17:35:46 +08:00 via iPhone   ❤️ 1
    因为别人一个请求过来,你的 web server 发现这是一个.php 文件,于是执行了它,然后返回它的返回值。如果你 web server 设置的是.php 文件直接返回,别人就能下载了。
    jasontse
        15
    jasontse  
       2016-08-16 17:37:21 +08:00 via iPad   ❤️ 1
    因为这个文件的扩展名是 .php 呀, Web Server 会让 PHP 解释器运行它,脚本的运行逻辑怎么会输出给客户端?这个文件里就没写要直接输出的东西。
    Tony2ee
        16
    Tony2ee  
    OP
       2016-08-16 17:47:18 +08:00
    @jasontse
    @kindjeff
    @Pastsong
    @bk201
    @awanabe
    谢谢你们的讲解 感谢已发
    xdeng
        17
    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 处理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 02:32 · PVG 10:32 · LAX 18:32 · JFK 21:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.