Что вы должны знать о PHP Mod_Rewrite и Mod_Security.
12 января 2023 г.Введение
В этом руководстве мы рассмотрим две темы одновременно. Mod_rewrite и Mod_Security станут необходимыми, когда вы станете разработчиком PHP, и вам нужно будет использовать их в своих веб-приложениях.
Вы можете многое узнать о Mod_rewrite и Mod_Security, прочитав этот урок, и он также расширит ваше понимание того, на что способен Mod rewrite. Модуль перезаписи мода — это механизм Apache, который переписывает URL-адреса в соответствии с правилами. Некоторые приложения имеют такие функции, как получение прокси-сервера и перенаправление страниц.
Давайте приступим к этому уроку, не теряя много времени!
Предпосылки
Ниже приведены вещи, которые вам нужно подготовить, прежде чем вы сможете использовать переписывание модов и безопасность модов в php.
- Во-первых, на вашем сервере должен быть установлен Apache и включена функция перезаписи модов.
- Вам потребуется доступ к файлам конфигурации Apache, которые находятся в каталоге
/etc/httpd/conf
или/etc/apache2/
на компьютере с Linux. Сервер. Но если вы используете Xammp, вы можете найти файл конфигурации Apache, подобный этомуC:xamppapacheconforiginal
и т. д. Обратите внимание, что файл конфигурации Apache содержит как перезапись модов, так и защиту модов. - Вам также необходимо убедиться, что директива
AllowOverride
установлена наAll
для каталога, в котором вы хотите ее использоватьmod_rewrite
. если дляAllowOverride
установлено значениеNone
, mod_rewrite не будет работать. - Наконец, вам нужно будет создать файл
.htaccess
в каталоге, где вы хотите использоватьmod_rewrite
, и включить в этот файл правила перезаписи.
Что такое Mod_Rewrite
mod_rewrite
– это модуль Apache, позволяющий аккуратно и гибко переписывать URL-адреса. Он может выполнять различные задачи, например перенаправлять запросы на другую страницу, позволяя вам использовать более короткие и удобные URL-адреса и многое другое. Обратите внимание, что другое название Mod_rewrite — модуль Rewrite
Что такое Mod_Security
mod_security
, также известный как ModSecurity, представляет собой модуль Apache, защищающий от ряда веб-атак. Его можно использовать для блокировки вредоносных запросов, фильтрации входных данных и регистрации активности для дальнейшего анализа. ModSecurity может помочь защитить ваш веб-сайт от различных угроз, включая атаки межсайтового скриптинга (XSS), атаки путем внедрения SQL-кода и многое другое.
Как настроить Mod_Rewrite и Mod_Security
В следующих разделах мы обсудим, как настроить перезапись модов и безопасность модов.
У вас должен быть доступ к файлам конфигурации Apache на вашем веб-сервере, чтобы настроить mod_rewrite
и mod_security
в проекте PHP. Хотя они часто предварительно устанавливаются вместе с Apache, некоторые модули не всегда могут быть активны. Вы можете активировать и настроить эти модули следующим образом:
- Запустите текстовый редактор и откройте файл конфигурации
httpd.conf
илиapache2.conf
для Apache. - Найдите директиву
mod_rewrite
LoadModule
. Удалите символ#
, чтобы раскомментировать его, если он закомментирован (т. е. ему предшествует символ#
). После этого будет включен модульmod_rewrite
. - Найдите директиву
mod security
LoadModule
. Удалите#
, чтобы раскомментировать его, если он был закомментирован. При этом модульmod_security
будет включен. - Чтобы изменения вступили в силу, сохраните файл конфигурации и перезапустите Apache.
- Чтобы использовать
mod_rewrite
в вашем проекте PHP, вы должны создать файл.htaccess
в корневом каталоге проекта. ДирективыRewriteRule
в этом файле определяют правила перезаписи URL для вашего проекта. - Вы должны написать файл конфигурации (часто называемый
mod security.conf
), в котором подробно описаны политики безопасности вашего проекта для использованияmod_security
. Каталог конфигурации Apache должен содержать этот файл (часто/etc/apache2/
в Ubuntu или/etc/httpd/
в CentOS).
Как использовать Mod_Rewrite и Mod_security
Два модуля Apache, mod_rewrite и mod security можно комбинировать для улучшения функциональности и безопасности веб-сайта.
Эффективным инструментом для изменения URL-адресов и перенаправления трафика является файл mod_rewrite. С его помощью можно перенаправлять входящие запросы на различные страницы, URL-адреса можно маскировать, чтобы сделать их более удобными для пользователя, и он даже может останавливать некоторые атаки, отклоняя запросы, содержащие вредоносные символы.
Перезапись мода, например, может использоваться для перенаправления всего трафика с устаревшего URL-адреса на новый или для перенаправления всех запросов на страницу, которой нет, на уникальную страницу с ошибкой 404.
Кроме того, вы можете использовать его для перенаправления запросов на другой URL-адрес или для запрета определенных запросов, которые следуют определенному шаблону.
С другой стороны, брандмауэр веб-приложений, называемый безопасностью модов, может использоваться для блокировки опасных запросов еще до того, как они достигнут вашего веб-сайта. Он может быть настроен на распознавание и остановку частых типов атак, включая внедрение SQL-кода и атаки с использованием межсайтовых сценариев (XSS).
Например, вы можете использовать мод безопасности, чтобы остановить все запросы, поступающие с IP-адресов или диапазонов, которые, как известно, используются злоумышленниками, или остановить все запросы, которые включают определенные термины или шаблоны, связанные с вредоносными атаками.
В сочетании переписывание модов и безопасность модов могут помочь вам создать надежный и безопасный веб-сайт, который лучше оснащен для отражения угроз и улучшения взаимодействия с пользователем. Но имейте в виду, что настройка безопасности мода для остановки всех мошеннических запросов — сложная операция, и ошибиться очень просто. В результате это может привести к блокировке трафика из подлинных источников или действительных запросов. Лучше получить совет от эксперта, если вы не знаете, как это сделать.
Как проверить, включен ли Mod_Rewrite в используемом вами PHP
В PHP есть встроенная функция, которая называется phpinfo
. Эта функция позволяет нам распечатать все загруженные в данный момент модули и проверить, включен ли mod_rewrite
.
- Обратите внимание, что здесь используется локальный сервер XAMPP.
Напишите следующий код в файле check.php
(вы можете называть свой файл любым именем по вашему желанию). вы только что создали его в каталоге c:/xampp/htdocs
, затем сохраните файл.
<?php
echo phpinfo();
?>
Описанный выше процесс поможет вам проверить, включен ли mod_rewrite
модуль загрузки в вашей версии PHP, написав приведенный выше фрагмент кода в редакторе кода, открытом для этого проекта.
- Теперь запустите панель управления XAMPP и запустите сервер Apache.
- Откройте любой веб-браузер и введите URL-адрес localhost/check.php. Он покажет информацию о версии PHP и конфигурации Apache.
Вы увидите свою версию PHP после того, как информация о PHP будет отражена в вашем коде. и когда вы прокрутите вниз, вы увидите раздел конфигурации с подзаголовком apache2handler
Обратите внимание, что раздел конфигурации содержит множество необходимых инструментов PHP. Mod
в Mod_rewrite
означает, что в модули и PHP загружено множество встроенных модулей. Но мы рассмотрим mod_rewrite
. Ниже вы можете найти mod_rewrite в разделе конфигурации.
Выделенный текст — это mod_rewrite, и он установлен внутри загруженных модулей в разделе конфигурации. Описанные выше шаги — один из самых простых способов проверить, включен ли php mod_rewrite в используемой вами версии PHP.
Как включить/отключить Mod_Rewrite и Mod_security из файла .htaccess
Большинство разработчиков не знают, что вы можете включать и выключать Mod_rewrite, некоторые могут знать, но не знают конкретное место, где вы можете включать и выключать mod_rewrite и mod_security. У меня есть ответ, который вам поможет: файл .htaccess — это то, что позволяет вам включать/выключать ваши mod_rewrite и mod_security. Обратите внимание, что mod_rewrite и mod_security можно включать и отключать в файле .htaccess, добавляя или удаляя определенные строки кода.
Добавьте следующий код в свой файл .htaccess, чтобы включить перезапись мода:
RewriteEngine On
Чтобы отключить mod_rewrite, добавьте в файл .htaccess следующую строку:
RewriteEngine Off
Безопасность мода нельзя включить или выключить по желанию; вместо этого это должно быть сделано в конфигурации сервера Apache. Однако вы можете настроить различные правила и параметры в своем файле .htaccess, например отключить определенные правила или изменить их поведение:
SecRuleEngine Off
Это отключит механизм правил для mod_security, чтобы никакие правила не применялись. И снова включить
SecRuleEngine On
Стоит отметить, что настоятельно рекомендуется не отключать mod_security в производственной среде, так как это может сделать ваш сайт уязвимым для атак. Вместо этого вам следует тщательно настроить правила в соответствии с вашими конкретными потребностями. Кроме того, вам может потребоваться перезапустить сервер Apache, чтобы изменения вступили в силу.
Заключение
Надеюсь, это руководство подошло к концу, вы многому научились из этого руководства. На данный момент мы многое узнали о PHP mod_rewrite и mod_security.
Мы знали, что можем настроить mod_rewrite и mod_security и как их использовать. Мы также узнали, как проверить, включен ли mod_rewrite в вашей версии PHP.
И мы также увидели, как мы можем включать и выключать Mod_rewrite и Mod_security в нашем файле .htaccess. Вы можете оставить комментарий!!
До следующего раза, хорошего дня!
Об авторе
Эммануэль Околи — разработчик полного цикла Laravel с 2+
годами опыта работы в индустрии разработки программного обеспечения.
Он приобрел полноценные навыки, сочетая разработку программного обеспечения, написание текстов и обучение других тому, чем он занимается. Его стеки включают JavaScript,
PHP,
ReactJs,
Laravel
и многое другое.
В настоящее время он работает фрилансером, создает веб-сайты для клиентов и пишет технические руководства, обучая других тому, что делает он.
Эммануэль Околи открыт и готов выслушать вас. Посетите его и подпишитесь на него в Linked-In, < a href="https://facebook.com/Emmykolic/">Facebook, Github , Twitter, или его Веб-сайт.
Оригинал