Назад | Перейти на главную страницу

Перенаправление .htaccess - это безопасно?

Это работает; У меня нет проблем но Я хочу быть уверенным, что это пуленепробиваемое.

Я придумал аккуратный маленький .htaccess перенаправить, но я не уверен, что это безопасно; вы знаете?

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^goto/([a-z]+)/?$ /$1/ [R]
</IfModule>

Я думаю, пока сервер настроен правильно и файлы обрабатывают аутентификацию автономно, это не должно быть проблемой для безопасности. Кроме того, поскольку правило перезаписи работает только с символами a-z и одной косой чертой, я сомневаюсь, что они могут прыгать по каталогам, вставляя что-то в URL-адрес, я думаю ...

На самом деле это спорный вопрос из-за флага [R].

Потому что вы отправляете внешний перенаправить это означает, что безопасность переходит в точку, когда сервер получает перезаписанный URL. На этом этапе это точно так же, как если бы кто-то поднял URL-адрес с кейлоггера на вашем компьютере. Сервер должен обрабатывать перезаписанный URL-адрес через новый запрос, как если бы перезаписи никогда не было.

Само перенаправление .htaccess действительно "безопасно" (если только в коде Apache, связанном с mod_rewrite или mod_rewrite, не обнаружена серьезная ошибка, которую можно использовать удаленно).

Давайте посмотрим на входящий образец запроса:

  1. Apache (mod_rewrite) проверяет соответствие правилу
  2. если это так: Apache не делает ничего, кроме отправки заголовка перенаправления в браузер
  3. если нет: Apache обрабатывает запрос как любой другой (т.е. начинает искать соответствующий файл, ...)

Единственная проблема, о которой я могу думать, - это каким-то образом перенаправить посетителя к файлу, который он не ожидал увидеть. Например, если Apache разрешено «следовать символическим ссылкам», а правило перезаписи указывает на символическую ссылку, например, ваш / etc / passwd, тогда Apache будет действовать в соответствии с инструкциями и отправит ваш / etc / passwd в браузер. Но на самом деле это не проблема безопасности перенаправления .htaccess.