Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита директорий, файлов в .htaccess, переадресация при ошибке
 
 автор: TetRiska   (12.09.2011 в 23:33)   письмо автору
 
 

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

На сервере есть каталог со скриптами, к которым операторы обращаются по надобности для обновления некой статистики. Так вот я сделал вход по паролю, с ИП не выйдет, т.к. у них динамический. Для этого в папку со скриптами положил .htaccess с содержимым:

#Защищаем .htaccess файл от открытия
<Files .htaccess>
   order allow,deny 
   deny from all
</Files>

#Запрещаем просмотр содержимого папки
Options All -Indexes

#При входе в папку запрашиваем логин/пароль
AuthType Basic
AuthName "Enter your login and password!"
AuthUserFile путь от корня/.htpasswd
require valid-user

В корень сайта положил .htpasswd. с логином и зашифрованным паролем.
Также в корень положил .htaccess со следующим содержанием:

#Защищаем .htaccess файл от открытия
<Files .htaccess>
   order allow,deny 
   deny from all
</Files>

#Защищаем .htpasswd файл от открытия
<Files .htpasswd>
   order allow,deny 
   deny from all
</Files>

По поводу этого будет пару вопросов:
1 - можно ли в последнем варианте объединить защиту файлов 2 в 1
2 - вообще стоит ли защищать эти файлы таким методом?
3 - нужно ли было скрывать содержимое директории, там где скрипты, если в ней нет индексного файла, при помощи

Options All -Indexes

4 - Как переадресовать на главную человека, если он на форме запрашивающей логин/пароль нажал отмена получив в ответ 401 ошибку Authorization Required. Пробовал:

ErrorDocument 401 http://www.сайт/

не вышло

П.С. Что еще важно упомянуть в .htaccess для надежной защиты? С нетерпением буду ждать ответов.

  Ответить  
 
 автор: cheops   (13.09.2011 в 09:11)   письмо автору
 
   для: TetRiska   (12.09.2011 в 23:33)
 

1-2. Это не требуется, дело в том, что все файлы, начинающиеся с .ht скрыты уже на уровне httpd.conf при помощи следующего набора директив
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
3. Хуже не будет
4. Попробуйте указать путь без http://
ErrorDocument 401 /

  Ответить  
 
 автор: TetRiska   (13.09.2011 в 10:47)   письмо автору
 
   для: cheops   (13.09.2011 в 09:11)
 

1-2 спасибо, администратор действительно это настроил
3 - доп. защита я считаю не помешает
4 - да это помогло, но в урле висит та папка, т.е. вводил сайт/папка/ -> вылезло окно авторизации -> нажал отмена -> остался на том же урле сайт/папка, а хотелось бы переадресовать на главную сайт/

  Ответить  
 
 автор: TetRiska   (13.09.2011 в 10:59)   письмо автору
 
   для: TetRiska   (13.09.2011 в 10:47)
 

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

1 - Защита изображений от скачивания

Очень часто бывает, что веб-мастера нагло копируют 
контент с Вашего сайта вместе с рисунками, причем рисунки 
подгружаются с Вашего же сервера. Это создает лишний 
трафик, что, зачастую, приводит к ряду проблем. Как же 
защититься от таких веб-мастеров и не помешать поисковым 
роботам индексировать изображения? Все просто:

RewriteEngine on
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://([^.]+\.)?site\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !msn\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{REQUEST_URI} !^/hotlinker\.gif$
RewriteRule \.(gif|jpg|png)$ /hotlinker.gif [NC,L]

hotlinker.gif - изображение, которое будет отображаться, 
вместо истинных изображений. Рекомендую в этом изображении 
отобразить Ваш логотип и ссылку на Ваш сайт. 

Это вообще эффективно и не навредит поисковикам в индексации картинок?

2 - Защищаем сайт

Данный код позволяет защитить сайт от scripts 
enjection и нежелательных модификаций _REQUEST и/или 
GLOBALS
    
#Включаем отслеживание сим-ссылок
Options +FollowSymLinks
#Запускаем url_rewriting
RewriteEngine On
#Блокируем все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
#Блокируем все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#Блокируем все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
#Перенаправляем все подобные на страницу с ошибкой 403 - запрещено
RewriteRule ^(.*)$ index.php [F,L]

Не совсем понятно, может данная защита стоит на уровне апача? Пока у админа не спрашивал, хочется прежде у Вас спросить.

3 - Сжимаем элементы с помощью mod_deflate

В качестве альтернативы компрессии файлов с помощью 
Gzip, вы можете использовать mod_deflate (предположительно 
работает быстрее). Разместите следующий код в начале вашего
файла .htaccess (также вы можете добавить .jpg|.gif|.png|.tiff|.ico):
    
#Сжимаем элементы с помощью mod_deflate
<ifmodule mod_deflate.c="">
<filesmatch .(js|css)$="">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>

Эффективен метод, кроссбраузерен? Мне допустим нужно сжимать картинки, скрипты, цсс файлы ну и хтмл странички.

Спасибо.

  Ответить  
 
 автор: cheops   (13.09.2011 в 11:31)   письмо автору
 
   для: TetRiska   (13.09.2011 в 10:59)
 

1. Картинки в индекс не попадут... в этом ничего страшного нет, так как важен текст, но кроме этого отвалятся изображения у примерно 10% ваших посетителей. HTTP_REFERER - формируется клиентом, может формироваться, а может отсекаться файерволом или браузером. Я бы такой штукой пользовался бы только при жесткой необходимости.
2. Нет, скорее всего это предлагается самостоятельно прописать в .htaccess. В любом случае защиту от этого лучше осуществлять на уровне скриптов, а не на уровне Apache. Только если имеете дело с чужими скриптами, в надежности которых вы не уверены.
3. Если честно не знаю.

PS Под новые вопросы, лучше заводить новые темы.

  Ответить  
 
 автор: TetRiska   (13.09.2011 в 14:40)   письмо автору
 
   для: cheops   (13.09.2011 в 11:31)
 

Спасибо за ответы, но как быть насчет еррордокумент / ? нужно переадресовать на главную

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования