maf*_*aff 2 security linux shared-hosting
我在共享网络主机上有一个帐户,它允许我通过 SSH 在服务器上工作。由于我在使用 Web 安装程序安装 Magento 时遇到了一些问题,因此我切换到命令行安装。安装命令如下所示:
php -f install.php -- \
...
--db_host "dbhost" \
--db_name "dbname" \
--db_user "username" \
--db_pass "password" \
...
--admin_username "username" \
--admin_password "password" \
...
Run Code Online (Sandbox Code Playgroud)
当命令正在运行(并运行几分钟)时,当然,该服务器上的其他所有人都可以通过检查正在运行的进程(ps aux例如)来查看参数(和密码)。我只是想知道是否有可能以某种方式隐藏该数据(例如,使用某种包装脚本/程序)?
不容易。如果您编写了一个执行该命令的包装器脚本,该命令仍将出现在ps.
如果您了解足够多的 PHP,您可以打开它install.php,查找它处理那些用户/密码标志的位置并自己对这些值进行硬编码(确保脚本有 700 个权限,以便其他人无法读取它),然后您就可以运行该命令而无需旗帜。
假设他们的脚本没有试图猜测它是如何运行的并且做出不适当的反应,你可以做这样的事情:
<?php
unset($argv);
$argv=array("install.php",
"--db_host","dbhost",
"--db_name","dbname",
...
"--and_so_on","value"
);
include("install.php");
?>
Run Code Online (Sandbox Code Playgroud)
作为一个新脚本(再次模式 700)并运行它php newinstall.php。 $argv通常是命令参数数组(以命令的名称开头),所以这里unset()是现有的参数,并使用您需要的所有命令行选项创建一个新参数,然后include()install.php 使 PHP 执行该脚本(使用修改了 $argv 列表以使 install.php 认为它是使用这些选项执行的)。
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |