что делает .htaccess с помощью строки AddHandler php5-script .php?

#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 из-за огромных проблем безопасности.