在 Ubuntu Nginx 上保护 PHPMyAdmin - 仍然可以直接访问 index.php

在 Ubuntu Nginx 上保护 PHPMyAdmin - 仍然可以直接访问 index.php

在 Ubuntu - Nginx 网络服务器上,我尝试保护 PHPMyAdmin。

有很多教程,它们宣传使用 auth_basic 或允许拥有/拒绝所有其他 IP 地址和/或通过将符号链接重命名为 PHPmyadmin 来使用混淆。这一切都很好,但如果我使用这些方法,当有人转到 domainname.tld/phpmyadmin/index.php 时,PHPmyadmin 的登录屏幕仍然会出现。

我该怎么做才能保证 PHPmyadmin 的安全?

nginx sites-available conf文件包含以下内容:

set $allowed 0;
if ($remote_addr = my.ip.address) {
    set $allowed 1;
}
location /phpmyadmin {
    if ($allowed != 1) {
        rewrite ^ /404 break;
    }
}

答案1

这似乎有效,添加了 index.php 的位置并直接在该位置处理 php(否则不会解析 php):

    set $allowed 0;
if ($remote_addr = my.ip.address) {
    set $allowed 1;
}
location /phpmyadmin {
    if ($allowed != 1) {
    rewrite ^ /404 break;
    }
}
location = /phpmyadmin/index.php {
    if ($allowed != 1) {
        rewrite ^ /404 break;
    }
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}

相关内容