Перейти к публикации

Рекомендованные сообщения

Здравствуйте. Мне тут посоветовали заменить файл .htaccess, который находится в папке uploads и templates, со стандартного:

<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?">

   Order allow,deny

   Deny from all

</FilesMatch>
На вот такой:
php_flag engine off


   Order allow,deny

   Deny from all


<FilesMatch "\.(css|js|jpe?g|gif|png)$">

   Order deny,allow

   Allow from all

</FilesMatch>
Говорят. Он вроде как лучше. Вот собственно вопрос стоит ли его менять? Чем лучше этот файл стандартного, и лучше ли вообще? А еще посоветовали в корневом .htaccess добавить такие строчки:
Options -Includes -Indexes -FollowSymLinks[/code]

Ссылка на сообщение
Поделиться на других сайтах

Вот это

<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?">[/CODE]

универсальнее, чем[b] php_flag engine off[/b]

[b]php_flag engine off - [/b]может не работать на разных хостингах

Изменено пользователем ZEOS.IN
Ссылка на сообщение
Поделиться на других сайтах

А тот кто советовал, не мог объяснить еще вдобавок чем лучше?)

Сказал, что этот файл блокирует все файлы кроме указанных в FilesMatch, в том числе те которые не блокируются стандартным файлом. Но, я в этом не очень разбираюсь, потому и хотел спросить у знающих безопасен ли этот файл.

Вот это
<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?">
универсальнее, чем php_flag engine off php_flag engine off - может не работать на разных хостингах
Извиняюсь за неточность. Директиву php_flag engine off я добавил позже. Первоначально было без него, вот такой вариант для templates
   Order allow,deny

   Deny from all


<FilesMatch "\.(css|js|jpe?g|gif|png)$">

   Order deny,allow

   Allow from all

</FilesMatch>[/code]




и вот такой для uploads:

[code]Order allow,deny Deny from all <FilesMatch "\.(jpe?g|gif|png)$"> Order deny,allow Allow from all </FilesMatch> <Files sitemap.xml> Order deny,allow Allow from all </Files>[/code]

Ссылка на сообщение
Поделиться на других сайтах

valorius,

Директива php_flag engine off безусловно лучше, но у нее есть недостаток, она может неработать в зависимости от настроек вашего хостинга и вы можете не знать что она не работает, поэтому применяется более универсальное <FilesMatch ".([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).?"> которое работает всегда. Поэтому прежде чем ставить php_flag engine off уточните у вашего хостинга, работает ли данная директива или нет. Подробнее читайте в соответствующей статье http://dle-news.ru/tips/1164-zaschita-papok-skripta-ot-zapuska-storonnih-skriptov.html

Ссылка на сообщение
Поделиться на других сайтах

В папке uploads/files находится файл с таким содержанием:

<FilesMatch ".*">

   Order allow,deny

   Deny from all

</FilesMatch>


<FilesMatch "\.(avi|divx|mp3|mp4|flv|swf|wmv|m4v|m4a|mov|mkv|3gp|f4v)$|^$">

   Order deny,allow

   Allow from all

</FilesMatch>
Очень хотелось бы узнать, что означают символы "|^$" в конце строки:
<FilesMatch "\.(avi|divx|mp3|mp4|flv|swf|wmv|m4v|m4a|mov|mkv|3gp|f4v)$|^$">
И ничего если я первый участок кода заменю на просто:
Deny from all[/code]

Изменено пользователем valorius
Ссылка на сообщение
Поделиться на других сайтах

<FilesMatch ".([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).?">

Мне не совсем понятно зачем в этом регулярном выражении .([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).? в конце стоит .?

Достаточно было бы написать так: .([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])$

В имени файла file_name.php в конце точки не будет и не вижу смысла находить её в регулярном выражении.

имхо 037.gif

Если файл будет называться music__dj.phPasha_track.avi , то регулярное выражение .([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).? не пропустит этот файл. (доказательства: http://regexr.com?33cic )

Если бы регулярное выражение было .([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])$, то файл бы открылся (доказательства: http://regexr.com?33cif)

Очень хотелось бы узнать, что означают символы "|^$" в конце строки:

| - или

^ - начало строки

$ - конец строки

А вот как понять, что такое ^$ тоже не совсем понимаю. Ведь файл без имени не может существовать 049.gif

Подробнее: http://ru.wikipedia....ярные_выражения

И ничего если я первый участок кода заменю на просто: Deny from all

Зачем? Чем это станет лучше?

Прочитайте: http://book.majordomo.ru/page/39/

Изменено пользователем ZEOS.IN
Ссылка на сообщение
Поделиться на других сайтах

Мне не совсем понятно зачем в этом регулярном выражении .([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).? в конце стоит .?

Если файл будет называться music__dj.phPasha_track.avi , то регулярное выражение .([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).? не пропустит этот файл.

Затем что если имя файла будет test.php.tts не важно какое расширение в самом конце, если оно неизвестно серверу, то он запустит файл как PHP скрипт, что делает вашу строчку бесполезной. А файл music__dj.phPasha_track.avi не может быть загружен скриптом. Он отфильтрует имя на такое в котором не будет упоминания phP вообще.

И ничего если я первый участок кода заменю на просто:

Не надо ничего трогать, в этом файле сделано все корректно.

Ссылка на сообщение
Поделиться на других сайтах

Затем что если имя файла будет test.php.tts не важно какое расширение в самом конце, если оно неизвестно серверу, то он запустит файл как PHP скрипт, что делает вашу строчку бесполезной. А файл music__dj.phPasha_track.avi не может быть загружен скриптом. Он отфильтрует имя на такое в котором не будет упоминания phP вообще.

Спасибо! Вспомнил зачем это :) Хотя на некоторых хостингах такой файл music__dj.phPasha_track.avi не сработает (как php файл). Как-то хостеры научились закрывать эту ошибку.

Тогда осталось понять, что означает ^$ и для чего это нужно 008.gif

Затем что если имя файла будет test.php.tts не важно какое расширение в самом конце, если оно неизвестно серверу, то он запустит файл как PHP скрипт

Для этого мой хостер дал мне ссылку на вот эту страничку: http://php.net/manua...nix.apache2.php и сказал прочитать 8 пункт (именно тут написано решение этой проблемы)

Изменено пользователем ZEOS.IN
Ссылка на сообщение
Поделиться на других сайтах

Для этого мой хостер дал мне ссылку на вот эту страничку: http://php.net/manual/ru/install.unix.apache2.php и сказал прочитать 8 пункт (именно тут написано решение этой проблемы)

Еще бы все хостинг провайдеры научились бы читать документацию по безопасному администрированию, но к сожалению это не так. 99% процентов использует именно AddType, а те кто использует VDS c панелью ISP так вообще 100% с этой директивой.

Ссылка на сообщение
Поделиться на других сайтах

Что-то я так и не понял зачем эта строка - "|^$"

Никто так и не ответил нужно ли прописать это в корневой .htaccess и что оно делает:

Options -Includes -Indexes -FollowSymLinks

И еще у меня почему-то исполняется .phtml в папке templates, пример - http://mfiles.hol.es/templates/file.phtml

Содержимое файла .htaccess в этой папке стандартное, chmod - 444:

<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?">

   Order allow,deny

   Deny from all

</FilesMatch>

Разве он должен запускаться?

Ссылка на сообщение
Поделиться на других сайтах

Что-то я так и не понял зачем эта строка - "|^$"

Означает, или как альтернатива и другие символы/расширения. Вроде так.

Никто так и не ответил нужно ли прописать это в корневой .htaccess и что оно делает:

Options -Includes -Indexes -FollowSymLinks

В таком виде нет, можете прописать в начало

Options -Indexes
- запрет на отображение содержимого директории при отсутствии индексного файла. Но возможно эта опция уже изначально на сервере настроена и смысла тогда в этом нет. Проверить можно так, создайте пустую папку в корне сайта, закиньте туда .htaccess с содержимым:
RewriteEngine Off[/code]

и зайдите в неё через браузер, если ошибка 403 (Forbidden), то уже настроено.

Ссылка на сообщение
Поделиться на других сайтах

Означает, или как альтернатива и другие символы/расширения. Вроде так.

Тогда бы это было так: ^w*.w{2,4}$

^ - начало строки | $ - конец строки

Что означает ^$ тоже не понимаю. Тайна 093.gif

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...