Безопасный PHPMyAdmin в Ubuntu Nginx - прямой доступ к index.php все еще существует
На веб-сервере Ubuntu - Nginx я пытаюсь защитить PHPMyAdmin.
Существует множество учебных пособий, которые распространяют информацию об использовании auth_basic или разрешают владеть / запрещать все другие IP-адреса и / или использовать запутывание путем переименования символической ссылки в PHPmyadmin. Это все хорошо, но если я использую эти методы, когда кто-то переходит на domainname.tld/phpmyadmin/index.php, по-прежнему появляется экран входа PHPmyadmin.
Что я могу сделать, чтобы обеспечить безопасность PHPmyadmin?
Файл конфигурации nginx sites-available содержит следующее:
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;
}