RedirectMatch против Deny от всех - что является более безопасным? - PullRequest
3 голосов
/ 15 июля 2011

В настоящее время я работаю над приложением с большим количеством каталогов в публичном веб-корне, которое не должно быть общедоступным.В настоящее время это делается путем удаления файла .htaccess с правилами Deny from All во все каталоги, которые не должны просматриваться.

Однако недавно я обнаружил это, определив список правил RedirectMatch в.htaccess в корне также «скрыл бы» эти файлы, выдавая 404 следующим образом:

RedirectMatch 404 "/uploads*"
RedirectMatch 404 "/keys*"
RedirectMatch 404 "/private_files*"
....

Не навязывает ли метод RedirectMatch какие-либо другие уязвимости безопасности, которые бы рекомендовали не переходить на такую ​​«централизованно управляемую» систему для определениячто публично, а что нет?

Ответы [ 2 ]

3 голосов
/ 15 июля 2011

Они не эквивалентны.Директива RedirectMatch работает на уровне URL.Это означает, что RedirectMatch 404 "/keys*" может помешать вам получить доступ к любому URL, начинающемуся с /keys, тогда как другой метод будет влиять только на эти конкретные физические каталоги (независимо от их URL).Это может быть ошибка или функция.

Кроме того, если вы беспокоитесь о производительности, Apache необходимо будет проанализировать правила RedirectMatch в главном .htaccess для каждого отдельного запроса, полученного сервером.Принимая во внимание, что попытки загрузки этих каталогов, как ожидается, будут довольно редкими, это, возможно, ненужные накладные расходы.

(Как кто-то еще, вероятно, отметит, самый безопасный механизм - переместить эти файлы за пределы Публичный корень документа, но я понимаю, что некоторые хостинг-провайдеры не позволяют этого.)

0 голосов
/ 15 июля 2011
<Directory /uploads>
    Order Deny,Allow
    Deny from all
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...