Что вы должны знать о PHP Mod_Rewrite и Mod_Security.

Что вы должны знать о 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, некоторые модули не всегда могут быть активны. Вы можете активировать и настроить эти модули следующим образом:

  1. Запустите текстовый редактор и откройте файл конфигурации httpd.conf или apache2.conf для Apache.
  2. Найдите директиву mod_rewrite LoadModule. Удалите символ #, чтобы раскомментировать его, если он закомментирован (т. е. ему предшествует символ #). После этого будет включен модуль mod_rewrite.
  3. Найдите директиву mod security LoadModule. Удалите #, чтобы раскомментировать его, если он был закомментирован. При этом модуль mod_security будет включен.
  4. Чтобы изменения вступили в силу, сохраните файл конфигурации и перезапустите Apache.
  5. Чтобы использовать mod_rewrite в вашем проекте PHP, вы должны создать файл .htaccess в корневом каталоге проекта. Директивы RewriteRule в этом файле определяют правила перезаписи URL для вашего проекта.
  6. Вы должны написать файл конфигурации (часто называемый 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.

  1. Обратите внимание, что здесь используется локальный сервер XAMPP.

Напишите следующий код в файле check.php (вы можете называть свой файл любым именем по вашему желанию). вы только что создали его в каталоге c:/xampp/htdocs, затем сохраните файл.

<?php
  echo phpinfo();
?>

Описанный выше процесс поможет вам проверить, включен ли mod_rewrite модуль загрузки в вашей версии PHP, написав приведенный выше фрагмент кода в редакторе кода, открытом для этого проекта.

  1. Теперь запустите панель управления XAMPP и запустите сервер Apache. Пример Xampp, который я использую
  2. Откройте любой веб-браузер и введите URL-адрес localhost/check.php. Он покажет информацию о версии PHP и конфигурации Apache. Вот версия PHP, которую я использую

Вы увидите свою версию PHP после того, как информация о PHP будет отражена в вашем коде. и когда вы прокрутите вниз, вы увидите раздел конфигурации с подзаголовком apache2handler

Here’s is  Configuration section that contains PHP Modules

Обратите внимание, что раздел конфигурации содержит множество необходимых инструментов PHP. Mod в Mod_rewrite означает, что в модули и PHP загружено множество встроенных модулей. Но мы рассмотрим mod_rewrite. Ниже вы можете найти mod_rewrite в разделе конфигурации.

The Highlight of this image is Where the 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, или его Веб-сайт.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE