valorius 0 Опубликовано: 9 января 2013 Рассказать Опубликовано: 9 января 2013 Здравствуйте. Мне тут посоветовали заменить файл .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] Цитата Ссылка на сообщение Поделиться на других сайтах
llbarmenll 18 Опубликовано: 9 января 2013 Рассказать Опубликовано: 9 января 2013 А тот кто советовал, не мог объяснить еще вдобавок чем лучше?) Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 9 января 2013 Рассказать Опубликовано: 9 января 2013 (изменено) Вот это <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]может не работать на разных хостингах Изменено 9 января 2013 пользователем ZEOS.IN 1 Цитата Ссылка на сообщение Поделиться на других сайтах
valorius 0 Опубликовано: 9 января 2013 Рассказать Опубликовано: 9 января 2013 Автор А тот кто советовал, не мог объяснить еще вдобавок чем лучше?) Сказал, что этот файл блокирует все файлы кроме указанных в 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] Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 10 января 2013 Рассказать Опубликовано: 10 января 2013 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 Цитата Ссылка на сообщение Поделиться на других сайтах
valorius 0 Опубликовано: 11 января 2013 Рассказать Опубликовано: 11 января 2013 (изменено) Автор В папке 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] Изменено 11 января 2013 пользователем valorius Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 11 января 2013 Рассказать Опубликовано: 11 января 2013 (изменено) <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 в конце точки не будет и не вижу смысла находить её в регулярном выражении. имхо Если файл будет называться 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) Очень хотелось бы узнать, что означают символы "|^$" в конце строки: | - или ^ - начало строки $ - конец строки А вот как понять, что такое ^$ тоже не совсем понимаю. Ведь файл без имени не может существовать Подробнее: http://ru.wikipedia....ярные_выражения И ничего если я первый участок кода заменю на просто: Deny from all Зачем? Чем это станет лучше? Прочитайте: http://book.majordomo.ru/page/39/ Изменено 11 января 2013 пользователем ZEOS.IN 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 12 января 2013 Рассказать Опубликовано: 12 января 2013 Мне не совсем понятно зачем в этом регулярном выражении .([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 вообще.И ничего если я первый участок кода заменю на просто: Не надо ничего трогать, в этом файле сделано все корректно. Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 12 января 2013 Рассказать Опубликовано: 12 января 2013 (изменено) Затем что если имя файла будет test.php.tts не важно какое расширение в самом конце, если оно неизвестно серверу, то он запустит файл как PHP скрипт, что делает вашу строчку бесполезной. А файл music__dj.phPasha_track.avi не может быть загружен скриптом. Он отфильтрует имя на такое в котором не будет упоминания phP вообще. Спасибо! Вспомнил зачем это Хотя на некоторых хостингах такой файл music__dj.phPasha_track.avi не сработает (как php файл). Как-то хостеры научились закрывать эту ошибку. Тогда осталось понять, что означает ^$ и для чего это нужно Затем что если имя файла будет test.php.tts не важно какое расширение в самом конце, если оно неизвестно серверу, то он запустит файл как PHP скрипт Для этого мой хостер дал мне ссылку на вот эту страничку: http://php.net/manua...nix.apache2.php и сказал прочитать 8 пункт (именно тут написано решение этой проблемы) Изменено 12 января 2013 пользователем ZEOS.IN 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 12 января 2013 Рассказать Опубликовано: 12 января 2013 Для этого мой хостер дал мне ссылку на вот эту страничку: http://php.net/manual/ru/install.unix.apache2.php и сказал прочитать 8 пункт (именно тут написано решение этой проблемы) Еще бы все хостинг провайдеры научились бы читать документацию по безопасному администрированию, но к сожалению это не так. 99% процентов использует именно AddType, а те кто использует VDS c панелью ISP так вообще 100% с этой директивой. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
valorius 0 Опубликовано: 12 января 2013 Рассказать Опубликовано: 12 января 2013 Автор Что-то я так и не понял зачем эта строка - "|^$" Никто так и не ответил нужно ли прописать это в корневой .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> Разве он должен запускаться? Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 13 января 2013 Рассказать Опубликовано: 13 января 2013 Что-то я так и не понял зачем эта строка - "|^$" Означает, или как альтернатива и другие символы/расширения. Вроде так. Никто так и не ответил нужно ли прописать это в корневой .htaccess и что оно делает: Options -Includes -Indexes -FollowSymLinks В таком виде нет, можете прописать в начало Options -Indexes - запрет на отображение содержимого директории при отсутствии индексного файла. Но возможно эта опция уже изначально на сервере настроена и смысла тогда в этом нет. Проверить можно так, создайте пустую папку в корне сайта, закиньте туда .htaccess с содержимым: RewriteEngine Off[/code] и зайдите в неё через браузер, если ошибка 403 (Forbidden), то уже настроено. Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 13 января 2013 Рассказать Опубликовано: 13 января 2013 Означает, или как альтернатива и другие символы/расширения. Вроде так. Тогда бы это было так: ^w*.w{2,4}$ ^ - начало строки | $ - конец строки Что означает ^$ тоже не понимаю. Тайна 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.