Запретить доступ к файлам «bat» в Apache

Я хочу запретить прямой доступ к некоторым конфиденциальным файлам в моем корневом приложении (например: log, sh, ini .. .и т.д). и по этим причинам я использовал следующую директиву в своем основном .htaccess:

<FilesMatch  "\.(htaccess|htpasswd|ini|log|sh|inc|bak|md|txt|lock|phar|bat)$|action.bat|composer.json|VERSION.*">
  Require all denied
</FilesMatch>

странно то, что она отлично работает для всех файлов, перечисленных в FileMatch, кроме файлов с расширением (.bat), которые я еще не понял, почему они все еще можно загрузить с помощью прямого доступа по URL. Конфигурация:

  • ОС: Windows 10
  • Стек: XAMPP

Версия компонентов XAMPP:

  • Apache 2.4.39
  • MariaDB 10.1.38
  • PHP 7.3.4 (VC15 X86 64bit потокобезопасный) + PEAR
  • phpMyAdmin 4.8.5
  • OpenSSL 1.1.0g
  • Панель управления XAMPP версии 3.2.3.

Обновление:

фактически я обнаружите, что сопоставление шаблонов работает со всеми файлами ".bat", кроме с именем "действие"! если я поменяю имя на что-нибудь иначе (скажем, "действие1") он работает нормально.

2
задан 26 December 2019 в 13:24
2 ответа

Можно добавить следующее к vhost файлу

Для отклонения определенного доступа файлов

<Files *.bat>
    Order allow,deny
    Deny from all
</Files>

, можно добавить дополнительный тип согласно требованиям.

0
ответ дан 29 December 2019 в 22:20

Регулярное выражение, которое Вы имеете, должно работать. Необходимо смочь также удалить action.bat|, и это должно функционировать то же. Если Ваш файл не заканчивается .bat, который мог бы вызывать проблемы.

А упростил объяснение того, что это делает:

\.(htaccess|htpasswd|ini|log|sh|inc|bak|md|txt|lock|phar|bat)$
|||                                                          |
||^Any string within brackets (separated with | as "or")     |
|^Any character or . when escaped     End of filename marker ^
^Escape character

Попытка, перезапускающая Ваш сервер, удостоверьтесь, что Вы работаете в корректном каталоге и удостоверяетесь, что нет ничего больше работающего против правил, которые Вы устанавливаете в этом .htaccess.

0
ответ дан 29 December 2019 в 22:20

Теги

Похожие вопросы