Guns.ru Talks
Компьютеры и программы
По htaccess подскажите (запрет доступа по refe ...

тема закрыта

Знакомства | вход | зарегистрироваться | поиск | картинки | календарь | поиск оружия, магазинов | фотоконкурсы | Аукцион

По htaccess подскажите (запрет доступа по referrer)

Ignat
P.M.
30-5-2012 15:50 Ignat
Собственно почти всё в заголовке.

Задача: простенький сайт, страницы статичные.
Некоторые кривые внешние сайты-агрегаторы откуда-то берут кучу неправильных линков и ломятся куда ни попадя по сайту. Естественно, получают законное 404.

Проблема в том, что иногда таких ошибок за день возникают сотни, реально 500-700 ошибок от таких кривых ссылок. При этом я как-то привык контролировать происходящее на сайте и стараюсь посматривать на причины ошибок (мало ли, может я где накосячил в сайте, линк неправильный дал и т.д.), а такой поток тупо забивает выдачу и найти реальные ошибки становится очень трудно.

Вывод: требуется при указании в поле referrer конкретного сайта (дальнейшие его поддомены любые уже не важны, все оптом подгребаем) тупо переадресовать пользователя куда-то (нах , в гугл и т.д.), но без выдачи 404-ой ошибки. Беглый поиск показывает, что вроде подобное можно сделать через htaccess, но самому аккуратно перекапывать документацию и потом долго отлаживаться радости мало. Потому и прошу помощи, наверняка же есть умельцы, кто сталкивался уже с подобной задачей.

------
Жизнь хороша, если есть ППШ!

WebDeveloper
P.M.
30-5-2012 16:03 WebDeveloper
при указании в поле referrer где? т.е. в чем это поле присутствует?
WebDeveloper
P.M.
30-5-2012 16:08 WebDeveloper
и еще.. . точно не берусь судить, но полагаю, редирект не решит проблему.. . сначала в логе зафиксируется 404 а за тем сработает редирект и будет 200 с урлом куда редирект увел.. .
WebDeveloper
P.M.
30-5-2012 16:09 WebDeveloper
Синтаксис команды Redirect выглядит следующим образом:

Redirect [status] URL_LOCAL URL_REDIRECT

status : необязательное поле, определяет код возврата, допустимые значения:

* permanent (301 - документ перемещен постоянно)
* temp (302 - документ перемещен временно)
* seeother (303 - смотрите другой)
* gone (410 - убран)

URL_LOCAL : локальная часть URL запрашиваемого документа.

URL_REDIRECT : URL куда должен быть выполнен редирект.

WebDeveloper
P.M.
30-5-2012 16:12 WebDeveloper
Некоторые кривые внешние сайты-агрегаторы откуда-то берут кучу неправильных линков и ломятся куда ни попадя по сайту. Естественно, получают законное 404.

это могут быть различные роботы которые ищут уязвимости на сайте.. . от них наверное нужен другой способ отбиваться.. . например есть уязвимость у форума, робот берет ваше доменное имя и стандартый путь к форуму которого у вас даже нет.. . и пытается обратиться, по факту проверяет есть или нет.. . получает 404 и уходит ни с чем.. . итог у вас в логе нагажено

Ignat
P.M.
30-5-2012 16:29 Ignat
Originally posted by WebDeveloper:

при указании в поле referrer где? т.е. в чем это поле присутствует?

Я так понимаю, что в строке запроса к серверу, т.е. де-факто это обычный переход по линку с внешнего сайта. Именно не в линке поле, а в запросе к серверу, о чём оно и оповещает.


Originally posted by WebDeveloper:

и еще.. . точно не берусь судить, но полагаю, редирект не решит проблему.. . сначала в логе зафиксируется 404 а за тем сработает редирект и будет 200 с урлом куда редирект увел.. .

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

Originally posted by WebDeveloper:

это могут быть различные роботы которые ищут уязвимости на сайте.. . от них наверное нужен другой способ отбиваться.. . например есть уязвимость у форума, робот берет ваше доменное имя и стандартый путь к форуму которого у вас даже нет.. . и пытается обратиться, по факту проверяет есть или нет.. . получает 404 и уходит ни с чем.. . итог у вас в логе нагажено

Это само собой. Но с ними ничего не сделать - атаки с бот-сетей, т.е. IP каждый раз разные, никаких рефов и т.д. тупо запрос адреса, по которому у хомячков обычно уязвимость. С этим бороться невозможно, к сожалению. Но и приходят не часто, да и гадят - строк 20-50 в лог за заход. Не 200-500 как тут.
А тут именно внешние сайты-агрегаторы, которые, видимо, собирают картинки, но почему-то делают это не всегда корректно. И по ссылкам с них требуют не существующие у меня картинки, что и приводит к ошибкам...

------
Жизнь хороша, если есть ППШ!

WebDeveloper
P.M.
30-5-2012 16:39 WebDeveloper
пример из лога дайте заценить...
проверить можно refer идет в http загловке, его мог бы проанализировать скрипт допустим на php, но на статике это не сработает.. . есть вариант, но проверить сейчас сам его не могу

в корневом каталоге создайте файл .htacces (точка в начале обязательна)
В нем следующие строки

RewriteEngine on
RewriteRule ^(.*)$ /index.html

если не поламаются переходы по ссылкам с корнегого каталога, то при вводе любого не существующего адреса будет открываться стартовая страница.. . но при этом 404 корректныйе вы тоже не отловите вышлите запись лога с ненужными ошибками, я гляну может какой другой вариант предложу

Ignat
P.M.
30-5-2012 19:45 Ignat
Originally posted by WebDeveloper:
пример из лога дайте заценить...
проверить можно refer идет в http загловке, его мог бы проанализировать скрипт допустим на php, но на статике это не сработает.. . есть вариант, но проверить сейчас сам его не могу

в корневом каталоге создайте файл .htacces (точка в начале обязательна)
В нем следующие строки

RewriteEngine on
RewriteRule ^(.*)$ /index.html

если не поламаются переходы по ссылкам с корнегого каталога, то при вводе любого не существующего адреса будет открываться стартовая страница.. . но при этом 404 корректныйе вы тоже не отловите вышлите запись лога с ненужными ошибками, я гляну может какой другой вариант предложу


Что-то мне подсказывает, что поломаются - перезапись безусловная.

Строка из лога:
www.iguns.ru [Tue May 29 23:16:04 2012] [error] [client 83.42.55.56] File does not exist: /home/i/igunsru/public_html/Articles/Handguns/ME-SingleActionArmy/p19.jpg , referer: badsitename.com

Т.е. хочется именно по рефу "badsitename.com" отстреливать обращения, сохраняя при этом нормальную обработку ошибок со всех других сайтов, или даже с этого, но для тех, кто не тупо давит на линк до посинения (или скрипт пользует), а не поленится скопировать ссылку ручками.

------
Жизнь хороша, если есть ППШ!

WebDeveloper
P.M.
30-5-2012 23:37 WebDeveloper
анализ...
со страницы, если соблюдать пути.. . iguns.ru идет попытка отрытия картинки iguns.ru
вопрос.. . была ли там ранее такая картинка?

теперь как отстрелить по имени хоста рефера
создаем в корне и во всех папках файл .htaccess

в него пишем

RewriteEngine on
RewriteCond %{REMOTE_HOST} ^*badsitename.*
RewriteRule ^(.*)$ /index.htm

что должно значить если в рефере присутствует badsitename то при образении с него на любой адрес перейти на главную.. . сам не проверял но думаю что так оно должно быть. за основу взят мануал http://beget.ru/art_htaccess

Ignat
P.M.
31-5-2012 07:28 Ignat
Originally posted by WebDeveloper:
анализ...
со страницы, если соблюдать пути.. . iguns.ru идет попытка отрытия картинки iguns.ru
вопрос.. . была ли там ранее такая картинка?

теперь как отстрелить по имени хоста рефера
создаем в корне и во всех папках файл .htaccess

в него пишем

RewriteEngine on
RewriteCond %{REMOTE_HOST} ^*badsitename.*
RewriteRule ^(.*)$ /index.htm

что должно значить если в рефере присутствует badsitename то при образении с него на любой адрес перейти на главную.. . сам не проверял но думаю что так оно должно быть. за основу взят мануал http://beget.ru/art_htaccess


Ага, спасибо, вот толкового мануала мне и не хватало

Судя по всему опять чуть не так - условие не на адрес посетителя надо

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^*badsitename.*
RewriteRule ^(.*)$ /index.htm

Осталось выяснить, поддерживает ли сие извращение хостер

P.S. Картинка была, но весьма недолго. Иногда ещё круче бывает: остались, скажем, в итоге p18 и p20, а p19 удалена. Но ведь криворукие сайтописатели считают себя самыми хитрыми и надеются, что есть и p19, просто ссылки на неё нет. А если вместо них IMGP_1000 и IMGP_2000 будут (не переименованные фото с фотоаппарата)? Будут ломиться и перебирать все промежуточные.. .
------
Жизнь хороша, если есть ППШ!

Guns.ru Talks
Компьютеры и программы
По htaccess подскажите (запрет доступа по refe ...