#php #apache #.htaccess
#php #apache #.htaccess
Вопрос:
Я с новым веб-хостингом. Папка public_html каждого домена, который я создаю, автоматически генерируется с помощью .htaccess, который имеет следующую строку:
AddHandler php5-script .php
Для чего это нужно?
Комментарии:
1. httpd.apache.org/docs/current/mod/mod_mime.html#addhandler
Ответ №1:
Это просто инструктирует PHP обрабатывать файлы, заканчивающиеся на .php
, передавая их интерпретатору PHP5. Без этой конфигурации веб-сервер может передавать файлы в веб-браузер конечного пользователя в виде необработанного PHP-кода, а не выполнять код. Это создает опасную возможность раскрытия учетных данных для входа в базу данных или других секретных данных.
Используя тот же механизм, вы можете настроить веб-сервер на анализ файлов с другими расширениями, помимо .php
PHP-скриптов, и передать их интерпретатору PHP. Иногда это делается для маскировки PHP-скриптов .html
, например, называя их расширениями.
# Interpret both .php amp; .html as PHP:
AddHandler php5-script .php .html
Комментарии:
1. 4 года спустя, и мне интересно, нужно ли это, даже если у меня есть это правило в моей конфигурации apache?
Ответ №2:
Он сообщает php обрабатывать любой файл с .php в имени файла, даже если он не находится в конце. Файл с именем smile.php.gif будет интерпретироваться как php-файл, что плохо, если вы собираетесь использовать скрипт загрузки. Это связано с тем, что Apache допускает несколько расширений в любом порядке, поэтому gif.php.jpg это то же самое , что и gif.jpg.php . Я слышал, что лучший способ выбрать обработчик — это использовать FilesMatch. Конечно, если у вашего веб-хостинга есть это в их httpd.conf, вам придется «удалить» его с помощью вашего htaccess, прежде чем использовать FilesMatch, если у вас нет доступа к httpd.conf.
Комментарии:
1. Он уязвим для загрузки файлов, т.е. file.php.png, мы можем обойти и атаковать веб-сайт, загрузив файл с именем shell.php.png
Ответ №3:
Ответ заключается в том, что htaccess сообщает веб-серверу обработать php
as php5-script
и выполнить его.
Что касается первого ответа, вы достигнете своей цели, но это действительно плохая практика, и вы не должны разрешать
html
выполнение файловphp
из-за огромных проблем безопасности.