【问题标题】:wp-config.php external accesswp-config.php 外部访问
【发布时间】:2012-08-24 08:15:19
【问题描述】:

我需要一个函数来获取 wp-config 数据库、用户并从另一台服务器传递。

我发现了这个,但只能在同一个 cpanel 帐户中工作。有没有办法获取这些值?

    $f = "/home/".$ac["user"]."/www/wp/wp-config.php";
        if(file_exists($f)) {
            $c = file_get_contents($f);

            preg_match('/define.*DB_NAME.*\'(.*)\'/', $c, $m);
            $dbname = $m[1];

            preg_match('/define.*DB_USER.*\'(.*)\'/', $c, $m);
            $dbuser = $m[1];

            preg_match('/define.*DB_PASSWORD.*\'(.*)\'/', $c, $m);
            $dbpass = $m[1];

            preg_match('/define.*DB_HOST.*\'(.*)\'/', $c, $m);
            $dbhost = $m[1];

【问题讨论】:

  • 应该没有办法从您自己的服务器结构之外的 wp-config.php 文件中解析信息,这将是一个巨大的安全问题。如果是这样,我可以获得任何 wordpress 网站的登录详细信息!

标签: wordpress api get cpanel


【解决方案1】:

wp-config 是用 PHP 编写的。 PHP 是一种服务器端语言,这意味着您无法从脚本本身中获取信息,只能从其输出中获取信息。不仅如此,如果您能够对任何人的 Wordpress 安装执行此操作,这将是一个重大的安全漏洞。如果您需要这些信息,唯一的方法是访问文件本身,例如通过 FTP。

【讨论】:

  • PHP is a server side language, meaning you can't get the information out of the script itself, only what it outputs.。你错了。我可以从 PHP 文件以及文件系统中的任何文件中获取信息。例如,我使用以下行 <?php $i = 'hello';?> 创建了一个 PHP 文件 test.php。之后,我使用<?php header('Content-type: text/plain'); var_dump(file_get_contents(dirname(__FILE__).'/test.php')); 创建另一个PHP 文件以获取test.php 的内容。我收到:string(21) "<?php $i = 'hello';?>".
  • @Mikhail,你是对的,你可以这样做......在你自己的服务器基础设施中。这不是 PHP 的设计或用途,也不是 OP 所要求的。 OP 想要从 REMOTE 文件中获取源代码。在服务器外部的文件上运行示例代码,输出只会是脚本输出的内容,而不是源代码。除非服务器配置不正确,否则 OP 要求的内容无法完成,因为这将是一场安全噩梦。
  • 不,它在同一个服务器上,一个 vps。有什么办法可以通过php直接在linux上阅读?
  • @Andre,您最初的问题是“来自另一台服务器”。 VPS 是一个虚拟专用服务器,这意味着它的私有/独立于所有其他服务器,即使它在相同的硬件上。所以你需要更清楚地说明你到底想要做什么。除非配置文件与 php 脚本位于同一文件系统中,否则您所要求的将无法完成。如果配置在同一个文件系统中,那么此时只需 FTP 并下载配置文件就容易上百万倍。听起来您无法以这种方式访问​​,因此为什么不可能。
猜你喜欢
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2019-09-15
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多