在 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;
}