|
|
|
| Добрый день .
Хотел поинтересоваться можно ли что то прописать в файл .htaccess от скачивания сайта под корень , всяких программ которые позволяют просматривать на отдельном компьютере названия каталогов и подобных вещей ?
Заранее спасибо . | |
|
|
|
|
|
|
|
для: prtygi
(25.05.2011 в 14:34)
| | Отделить такие программы от обычных посетителей невозможно, то что могут скачать обычные посетители, могут скачать и они. Иногда они в пользовательском агенте указывают свою принадлежность, но пользовательский агент легко поддается фальсификации, так как формируется на стороне клиента. | |
|
|
|
|
|
|
|
для: cheops
(25.05.2011 в 14:42)
| | Понятно спасибо .
Просто я нашел скрипт (показан с низу) . Есть ли смысл его ставить если у меня сайт состоит на 80 % из флеш ? И не повлечёт ли это другие проблемы ?
Запись запрещающей строки в .htaccess осуществляется автоматически.
Скрипт вставляется в каждую страницу сайта с помощью include.
Описание настроек скрипта:
// error_reporting(0) После установки и настройки скрипта комментарий снять.
$limit // Максимально допустимое количество обращений к сайту с одного IP-адреса в минуту.
$htaccess // Путь к файлу .htaccess
$htstring // Комментарий к строке в файле .htaccess
$dirfiles // Путь к папке с временными файлами
$logfiles // Имена временных файлов
$excludes // Массив исключений с именами хостов, которым "можно всё"
<?php
//error_reporting(0);
$address = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
$url = urldecode($_SERVER['REQUEST_URI']);
$limit = 20;
$timenow = time();
$browser = $_SERVER['HTTP_USER_AGENT'];
$htaccess = $_SERVER['DOCUMENT_ROOT']."/.htaccess";
$dirfiles = $_SERVER['DOCUMENT_ROOT']."/antirip/logfiles/";
$logfiles = "$dirfiles".$address;
$hostname = gethostbyaddr($address);
$datetime = date("Y-m-d H:i:s");
$ip1 = getenv("HTTP_X_FORWARDED_FOR");
$ip2 = getenv("REMOTE_ADDR");
$hostip1 = gethostbyaddr($ip1);
$hostip2 = gethostbyaddr($ip2);
if ($ip1 != $ip2) {
$htstring = NULL;
if (!empty($ip1)) {
preg_match_all('/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/', $ip1, $ip1);
$ip1 = array_unique($ip1[0]);
foreach ($ip1 as $v) {
$htstring.="Deny from ".$v." \\\\ Заблокирован Внутренний IP \\\\ $hostip1\r\n";
}
}
if (!empty($ip2)) {
$htstring.="Deny from ".$ip2." \\\\ Заблокирован IP Proxy \\\\ $hostip2\r\n";
}
} else {
$htstring = "Deny from ".$address." \\\\ Заблокирован Внешний IP \\\\ $hostname\r\n";
}
$excludes = array(
"yandex.ru",
"rambler.ru",
"googlebot.com",
"webaltabot.com",
"inktomisearch.com",
"search.live.com",
"deb.telenet.ru",
"213.248.56.160",
"81.19.77.184"
);
if ($opendir = opendir($dirfiles)) {
while (false !== ($log = readdir($opendir))) {
if ($log != "." and $log != "..") {
$timelog = date(filemtime("$dirfiles"."$log"));
if ($timelog < ($timenow - 60)) {
unlink("$dirfiles"."$log");
}
}
}
}
foreach ($excludes as $v) {
if (ereg($v, $hostname)) {exit;}
}
if (!file_exists($logfiles)) {fopen($logfiles, "w+");}
$write = "$datetime - $hostname<br>Browser: $browser<br>Referer: $ref<br>URL: $url<br>\r\n";
if ($logfiles) {
if (is_writable($logfiles)) {
if (!$handle = fopen($logfiles, 'a')) {exit;}
if (fwrite($handle, $write) === FALSE) {exit;}
fclose($handle);
}
}
if ((count(file($logfiles)) > $limit) and ($timelog > ($timenow - 60))) {
if ($htaccess) {
foreach (file($htaccess) as $h) {
if ($h === $htstring) {
exit;
}
}
if (is_writable($htaccess)) {
if (!$handle = fopen($htaccess, 'a')) {exit;}
if (fwrite($handle, $htstring) === FALSE) {exit;}
fclose($handle);
}
}
}
?>
|
если на сайте стоит сапа, надо разрешить доступ роботам, список прилагается
217.107.36.73
217.107.36.132
81.177.144.46
87.242.74.101
80.251.136.38
93.191.15.77 | |
|
|
|
|
автор: Василь (09.12.2013 в 03:38) |
|
|
для: prtygi
(25.05.2011 в 15:24)
| | Никому не советую пользоваться этим кодом, он косячный вдоль и поперёк. rnМассив ботов, вообще не работает (читается только последний в массиве), да ещё и стоитrn
foreach ($excludes as $v) {rnif (ereg($v, $hostname)) {exit;}rn}
| rnС такой фигнёй, вы побаните бота, а не разрешите доступ.rnrnЭто под какой сайт такой таймаут??rnrnА это условие вообще жестьrn
if ((count(file($logfiles)) > $limit) and ($timelog > ($timenow - 60))) {
| rnНу вот так же правильно:rn
if ((count(file($logfiles)) > $limit)) {
| rnrnИдея кода хорошая, но реализация никакая,rnи даже опаснаяrnтут половину переписывать нужно | |
|
|
|
|
автор: Василь (09.12.2013 в 03:57) |
|
|
для: Василь
(09.12.2013 в 03:38)
| | Короче напишу вместо него нормальный код, и выложу тут.
А то люди этот код по всей сети на разных сайтах находят и ставят себе в движки,
даже не потестировав и не врубившись как он классно "сайт защищает".
Ещё пару вредных слов:
Что это за способ определения Ip-шника такой, да ещё и попытка эту косячную муру
в хтассес записывать? Типа он там определит прокси... ага, щас.
Почему не сохраняется лог-файл заблокированного IP?
Условия по таймауту расписаны так, что он у вас поблокирует 1/3 нормальных юзеров.
Почему я не вижу время блокировки лога?
Самый прикол, повторюсь, массив ботов в этом коде.
Интересно, тот писатель, которые его придумал, вообще его хоть раз проверил?
Если в этом массиве (который вообще не пашет, кроме замыкающего значения)
последним поставить бота Яндекса и на неделю забухать - ваш сайт повылетает из Яши нафиг.
Ибо стоит exit.
Думаю за пару вечеров напишу-перепишу свой и выложу тут к концу недели. | |
|
|
|
|
автор: Василь (19.12.2013 в 07:26) |
|
|
для: Василь
(09.12.2013 в 03:57)
| | Антинагрузка версия 1.3
Установка
1. Проверяем наличие .htaccess
2. Создаём папку: logfiles, а в ней папку badblocking
3. Помещаем код в один файл, который подгружается
ко всем страницам сайта.(например шапка сайта)
4. Настраиваем самое важное значение в коде - $limit
Это значение очень индивидуально. У навароченного интернет магазина
лучшим например окжется 100, а у сайта в пять страниц - 30.
Но аккуратно подобрав один раз это число, можно больше не париться.
5. Данный пример заточен под чисто русский сайт.
Если сайт под заграницу - правим массивы хороших ботов.
6. Устанавливаем адрес своей почты.
Особенности скрипта:
Банит только адских демонов, валящих и качающих сайты.
Гарантированно не трогает хороших ботов и посетителей
Забанненные логи сохраняются в отдельную папку -
можно посмотреть всю историю запросов, дабы разобраться что на сайте делал бот.
На почту админа приходит письмо с краткой инфой о забаненном демоне.
Примечания:
Писал для себя. Код лично у меня работает чётко без глюков и не забанил
ни одного нормального посетиля.
По опыту, рекомендую периодически подтирать все баны из .htaccess
не реже 1 раза в три месяца.
Если ваш сайт качают с грамотными тайм-аутами, то ни один скрипт вам не поможет.
Этот код, если его настроить, блокирует только отмороженных ботов и качальщиков,
создающих большую нагрузку, приводящую к тормозам сайта.
Это не волшебный код, избавляющий от всех проблем, а просто хороший помошник для сайта.
Массив $browexclud - кому-то покажется смешным, т к заточен на точное совпадение.
Его можно например заменить на частичное совпадение или удалить из кода.
Кто знает хоть немного php - работы на 5 мин, по аналогии с массивом $hostexclud
Удачи! | |
|
|
|
|
автор: Василь (19.12.2013 в 07:33)  5.2 Кб |
|
|
для: Василь
(19.12.2013 в 07:26)
| | Код прикрепил к сообщению | |
|
|
|
|
автор: Василь (23.12.2013 в 01:03)  6.1 Кб |
|
|
для: Василь
(19.12.2013 в 07:33)
| | Новая версия 1.5
Теперь в бан идут даже любые проги-качальщики сайтов, не зависимо от грамотных таймаутов.
При этом гарантированно не трогаются нормальные боты и посетители.
1. Создаём любую страницу сайта, на которую нет ссылок на сайте.
Не пустую, а с каким-нибудь текстом по теме сайта.
2. Вставляем её url в код
Качальщик её хватает
и тут же попадает в бан. Он ведь не способен, в отличие от
посетителя, понять что это ловушка, а не обычная страница.
3. В письме админу, теперь приходит инфа за что забанили.
Новая версия прикреплена к сообщению
Установка и настройка не изменились,
кроме добавления урла страницы
PS: Идея страницы-ловушки давно придумана людьми,
но сколько я не пробовал кодов, ни один не давал гарантий,
что под раздачу не попадёт яндекс или гугло-бот .
Этот код на сто процентов защищает от таких проблем.
Удачи! | |
|
|
|