Jump to content

Recommended Posts

Доброго дня форумчане.

Поиском поискал, не нашел такой темы. Так, что если такая есть-я не ленился

Я тут погуглил...понадергал так сказать всего и вся в хтаксес.
 Прошу мнения имеет ли право на жизнь такой хтаксес. У меня open Cart 2.2

Options +FollowSymlinks

#Запрещаем загрузку файлов с внешних сайтов
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?мой сайт.ru/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://мой сайт.ru/image/data/oops.jpg[nc]

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>


RewriteEngine On

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^yandexmarket.xml$ index.php?route=feed/yandex_market [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

#Блокируем все ссылки, содержащие <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]

# Редиректы


RewriteCond %{HTTP_HOST} ^www.мой сайт\.ru$ [NC]
RewriteRule ^(.*)$ http://мой сайт.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]


#Блокируем плохих ботов и роботов
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<limit get="" post="" head="">
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>


#Защита от хотлинка
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?мой сайт\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Замените /images/nohotlink.jpg на изображение с запрещением хотлинка
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/data/oops.jpg [L]

# Запретить другим сайтам использовать прямые ссылки на ваши картинки
RewriteCond %{HTTP_REFERER} !^$
# Дальше список разрешенных доменов
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт1.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт1ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт12.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yсайт2.ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт3.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт3.ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт4.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт4.ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт5.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт5:80.*$ [NC]
# IP сайта (домена)
RewriteCond %{HTTP_REFERER} !^http(s)?://Здесь не знаю, что писать, поэтому если можно, то удалить111.111.111.111.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://111.111.111.111:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google. [NC]
# RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?домен_дружественного сайта.ru [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
# Форматы файлов, для которых устанавливается защита
# Выводит ошибку 403
# RewriteRule \.(jpe?g|bmp|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip|pdf|txt|doc|flv|mp3|mp4)$ — [NC,F,L]
# или показывает спецрисунок вместо указанного
RewriteRule .*\.(jpe?g|bmp|gif|png)$ image/data/oops.jpg [NC,L]



# Конфигурируем сайт для видео HTML5

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/cart.png
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType application/x-shockwave-flash swf


#Устанавливаем e-mail адрес по-умолчанию для администратора сервера
ServerSignature EMail
SetEnv SERVER_ADMIN моя почта@mail.ru


# отключаем вывод ошибок пользователям
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# заносим ошибки в журнал
php_flag log_errors on
php_value error_log /system/to/php_error.log

 

Edited by DYATEL

Share this post


Link to post
Share on other sites

Уважаемые спецы, дайте кто-нибудь мнение плиз

Share this post


Link to post
Share on other sites

Главное правило - все редиректы до блока с

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

И зачем вам дважды RewriteEngine On (вопрос риторический)?

 

А второе правило: не использовать почту mail.ru.

 

И вообще понатыкано всё бездумно: что-то дублируется, что-то реализовано не самым удачным образом, что-то вообще не нужно.

 

Какие у вас есть реальные задачи для сервера?

 

7 часов назад, DYATEL сказал:

Поиском поискал, не нашел такой темы.

И не удивительно, ведь вы искали то, чего не существует. А если правильно название указать, то тем куча:

https://opencartforum.com/search/?q=htaccess&type=forums_topic&sortby=newest

 

 

  • +1 1

Share this post


Link to post
Share on other sites

Добрый день.

 

Так так-то хотелось бы все реализовать в хтаксесе, т.е.:

#Запрещаем загрузку файлов с внешних сайтов

редиректы

#Блокируем все ссылки, содержащие <script>

#Блокируем плохих ботов и роботов

#Защита от хотлинка

# Запретить другим сайтам использовать прямые ссылки на ваши картинки

 

Остальное вроде не столь важно

 

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

Спасибо

 

Share this post


Link to post
Share on other sites

Нашел тему по нормальному забив поиск. Там все есть по правильному хтаксесу. Но по остальным пожеланиям, если есть мнения, то буду рад выслушать

Спасибо.

Share this post


Link to post
Share on other sites
4 часа назад, DYATEL сказал:

#Запрещаем загрузку файлов с внешних сайтов

 

4 часа назад, DYATEL сказал:

#Защита от хотлинка

 

4 часа назад, DYATEL сказал:

# Запретить другим сайтам использовать прямые ссылки на ваши картинки

 

Вот это всё - одно и то же!

Хотлинкинг - это вставка изображений с вашего сайта на других сайтах.

 

Если вам нужна просто защита от хотлинкинга, то зачем полотнище разрешённых хостов?

 

 

 

4 часа назад, DYATEL сказал:

#Блокируем все ссылки, содержащие <script>

В ОК нет с этим проблем: все данные запросов обрабатываются через htmlspecialchars.

  • +1 1

Share this post


Link to post
Share on other sites

Понял. Спасибо за помощь

Share this post


Link to post
Share on other sites

Еще вопросик, так сказать для самообразования.

Окончания строк в хтаксесе, такие как:

 

[NC]

[NC,OR]

[L]

[L,QSA]

[R=301,L]

что значат? или есть где прочесть про это?

Share this post


Link to post
Share on other sites

ПО приведенной выше ссылке не нашел ответ, но поняв в какую сторону копать нарыл следующее: (вдруг кому надо будет)

(Взято с какого-то сайта)

.......это флаги правил. Флаги - дополнительные опции для данного правила, которые перечисляются в квадратных скобках через запятую.

* R (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например "R=301" возвратит редирект с кодом 301 (MOVED PERMANENTLY). 
* F (forbidden) возвращает ошибку 403 (FORBIDDEN). 
* G (gone) возвращает ошибку 410 (GONE). 
* P (proxy) - по этому флагу Apache выполняет подзапрос (sub-request) к указанной странице с использованием программного модуля mod_proxy, при этом пользователь ничего не узнает об этом подзапросе. Если модуль mod_proxy не входит в состав вашей сборки Apache, то применение данного флага вызовет ошибку. 
* L (last) останавливает процесс преобразования, и текущая ссылка считается окончательной. 
* N (next) запускает процесс преобразования с первого по порядку правила. 
* C (chain) объединяет несколько правил в цепочку. Если первое правило цепочки «не срабатывает», то вся цепочка игнорируется. 
* NS (nosubreq) разрешает «срабатывание» правила только для настоящих запросов, игнорируя подзапросы (подзапрос может быть вызван, например, включением файла при помощи директивы SSI). 
* NC (nocase) отключает проверку регистра символов. 
* QSA (qsappend) добавляет исходные параметры запроса (query string) к замене. Если замена не включает в себя новые параметры запроса, то исходные параметры запроса добавляются автоматически. Если же включает, то без флага QSA исходные параметры запроса будут утеряны. 
* PT (passthrough) останавливает процесс преобразования и передает полученную новую ссылку дальше «по цепочке», чтобы над ней могли «поработать» директивы Alias, ScriptAlias, Redirect и им подобные (тогда как при флаге L новая ссылка считается окончательной и не подлежит дальнейшей обработке). 
* S (skip) пропускает следующее правило, если данное правило «сработало». Можно пропускать несколько правил, если указать их количество, например: «S=3». 
* E (env) устанавливает переменную окружения, например: «E=переменная:значение».

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.