|
Слава богу, «выдает» она их косвенным образом. Но все равно очень глупым. Такой косяк был замечен на очень многих сайтах, и мне кажется, что поисковики просто не могли не воспользоваться случаем. Здесь я напишу, в чем дело и как от этого защититься.
Собственно дело в том, что сервера сапы сейчас сильно нагружены, а в некоторые моменты перегружены. И тупые программисты сапы (вот уж тут по праву назову их тупыми) сделали так: если скрипт не может достучаться до сервера раздачи ссылок, он прямо на сайт выдает ошибку со словами (цитирую):
SAPE_ERROR: Не могу подключиться к серверу: dispenser-01.sape.ru/code.php?user=b4c4045f147bf074f5dcd938cd734316&host=goriz.ru
Поисковику даже задумываться не о чем – уже все понятно. Сайт торгует ссылками. Кстати, посмотрите на выдачу по запросу dispenser-01.sape.ru/code.php?user=, dispenser-02.sape.ru/code.php?user= и другим (меняется цифра от нуля до количества сапо-серверов) – возможно Ваш сайт там есть
Сейчас немного программерского бреда. Это для программеров. Защищенный код будет приведен в конце Это для нормальных людей
Теперь о защите. Как защититься? Во первых, не выводить ссылки сразу, а записывать их в переменную. Во-вторых, проверять в этой переменной вхождение строки ‘dispenser-’. В обычных ссылках такой нет, а в этой тупой ошибке – есть. И если эта строка нашлась, не выводить ничего. Если не нашлась – выводить ссылки.
Для проверки вхождения мы будем пользоваться функцией int substr_count (string $haystack, string $needle) – «substr_count() Возвращает число вхождений подстроки needle в строку haystack . Заметьте, что поиск ведется с учетом регистра символов.» (c) php.net. Если ничего не нашли, то вернется 0.
Теперь в коде сапы нужно заменить строку echo $sape->return_links(); на следующий код:
$a = $sape->return_links();
if (substr_count ($a, "dispenser") <= 0){
echo $a;
}else{
echo "Hello, Yandex! ";
}
Хело, Яндекс – это, конечно, шутка. Сгенерировать эту ошибку специально невозможно. Но можно проверить работоспособность кода хотя бы специально подставив в переменную $a строку с этой ошибкой до проверки. Например так:
$a = $sape->return_links();
//разделено на строки для лучшего чтения
$a = "SAPE_ERROR: Не могу подключиться к серверу:
dispenser-01.sape.ru/code.php?user=
f72e534919cd569065c0994725491ce3&host=kitaphana.kz,
type: file_get_contents";
if (substr_count ($a, "dispenser") <= 0){
echo $a;
}else{
echo "Hello, Yandex! ";
}
Выводит Hello, Yandex , а значит защита сработала.
UPD: Блин, совсем забыл! Hello, Yandex лучше удалить нафиг. Можно вообще удалить блок else, тогда код получится таким:
$a = $sape->return_links();
if (substr_count ($a, "dispenser") <= 0){
echo $a;
}
Собственно, как хотите – можно оставить и послание. Можно просто убрать все из вывода (сделать echo «»;) в блоке else. Да, и еще – любителям «псевдо-рефакторинга» – можно и не использовать переменную $a, да. Но так же понятнее
Удачи в заработках!
____________________________________________
Представляю Вам блог с интересным названием Здесь презирают заработок в Интернете. Порадовали циничное отношение к манимейкингу, но все записи «по делу», как ни странно .
Оставьте свой комментарий
|
01.08.2008 в 1:31 пп
Полезно спасибо, попробую применить на практике)
02.08.2008 в 12:01 дп
Не все я конечно понял, так как далек от этого всего)) но все таки хоть что то новое почерпнул!! пасиб!!!
02.08.2008 в 12:24 дп
h.t.a, Просто замените строку echo $sape->return_links(); на мой код и Вашим сайтам станет чуть лучше
02.08.2008 в 9:59 дп
Не. Вот у тебя на странице тоже этот код:)
SAPE_ERROR: Не могу подключиться к серверу: dispenser-01.sape.ru/code.php?user=b4c4045f147bf074f5dcd938cd734316&host=goriz.ru
и ссылки ты вроде не продаёшь
Имхо, вычисляют не так
02.08.2008 в 10:47 дп
Да действительно, реально заметка.Будем работать на залачивание дыр в сапе.
02.08.2008 в 1:28 пп
Врангель, ну да, спалил сам себя
Но ссылки я продаю, уже
А то рекламы тут еще долго не будет.
Вообще в годе ведь пишется еще и сайт.
__________________
А не кто и не говорил, что вычисляют именно так! Но ведь никто не знает, как именно вычисляют, поэтому лучше защититься от всего возможного. Разве нет?
03.08.2008 в 3:13 пп
Спасибо за статью
15.08.2008 в 1:17 дп
Уже используем.
Есть и еще вопрос. Сервера перегружены, но скрипт все же достучался до sape – но время то загрузки страницы неимоверно возросло в десятки раз. Как обойти это?
15.08.2008 в 2:48 дп
скорее всего никак. если можно как-то прервать запрос (о чем я не знаю), то шанс был бы
15.08.2008 в 3:42 пп
ПОГУГЛИЛ и нашел очень много сайтов по запросу
dispenser-01.sape.ru/code.php?user=, dispenser-02.sape.ru/code.php?user=
А самое интересное эти сайты находятся в кеше гугла и еще не известно сколько там будут там храниться
спасибо за информацию
15.08.2008 в 4:10 пп
Да незачто )
15.08.2008 в 5:45 пп
Мне пока эта тема с сапой не очень интересна, но информацию я отслеживаю, может быть когда-нибудь пригодится. Тем более переход на новый(более производительный) хостинг потребует от меня больше денег, а на чистом энтузиазме далеко наверное не уедешь. Хотя … история знает примеры
Но линкопомойку из своего сайта тоже не дело делать )) поэтому я лично с сапой не спешу )
14.09.2008 в 12:04 пп
У меня раньше постоянно на одном из говносайтов эта ошибка висела, и ничего не случилось, до сих пор в индексе, это черевато только в том случае когда ваш сайт в ручную модерируют…
22.09.2008 в 10:19 дп
Ну это пока, потом напишут скриптик поисковики, и будут отлавливать оп таким ошибкам.. и по многим дургим. И начнется когда начнут с биржами бороться, пока не активно борятся. Так что все в переди. Автору спасибо, я о таких ошибках даже не подозревал)
30.09.2008 в 9:13 пп
Да, но мне кажется, что яндекс никогда специально ни комменты оставляемые сапой ни вот эту ошибку парсить не будет
слишком это все сугубо… А если уж валить то всех сразу – и сапу и ксап и всех остальных.
Кстати в сапе теперь все переводится на рубли, легализируют систему. Подробнее о нововведениях Sape можно почитать здесь.
06.10.2008 в 12:29 дп
У SAPE видимо доходы перевалили… легализвались.
Что будет если выбрать «Не резидент России». Не будет ли проблем с выводом денег?
21.10.2008 в 7:17 пп
можно добавить ещё mail и отсылать на мыло то что ошибка была
06.11.2008 в 9:32 пп
А от сапы санкций не будет?. Аккаунт не забанят? А то, я читала, вроде запрещается вмешиваться в работу скрипта…
06.11.2008 в 9:47 пп
Анна, как они узнают?
17.11.2008 в 7:59 пп
вы уверены, что эта ошибка выводится всегда?
бегло просмотрел код sape.php версии 1.0.3 от 27.02.2008, там функция вывода ошибок проверяет verbose и в обычном режиме выводиться ничего не должно
15.12.2008 в 6:59 пп
На вашем блоге нашла для себя довольно много полезной информации. Например эта статья
«Privet, Yandex!» развеселило
А если так оставить, драгоценный Яндекс ничего не сделает?
18.12.2008 в 3:06 дп
сапу надо вообще убирать. особенно после вчерашнего апа ТИЦ, все сайты с сапой на борту ушли в никуда…
21.01.2009 в 11:02 пп
Никогда бы нем подумал, а ведь и правда. Сделаю как советуете…
30.01.2009 в 8:48 пп
Мда уж, сапа ступила, придется переправлять код, раньше про такую фишку не знал, спс
01.02.2009 в 4:03 пп
мне больше кажется, что данная ошибка поисковникам ничего не говорит. возможно, они сами читают список сайтов с сервера сапы – а то давно бы уж удалили все продажные сайты… и прикрыли лавочку.
Интересное то, что id юзера сапы, после такой переделки, не светится любому желающему…
02.07.2009 в 2:14 пп
13.11.2009 в 12:04 дп
Яндекс с 97 % точностью определяет покупные ссылки, но нормальные ресурсы он не банит, а плохие банит. Вот наверно почему сателлиты долго не живут.
15.11.2009 в 5:28 пп
Мусье, вы тупой идиот.
Режим отладки отключите в сапокоде (он отключен по умолчанию) и не придется херней маяться.
15.11.2009 в 11:14 пп
+1
Вот что бывает, если не читать мануалы
$sets['verbose'] = false;
$sets['force_show_code'] = false;
$sape = new SAPE_client(sets);
$sape_context = new SAPE_context(sets);
15.11.2009 в 11:34 пп
Уже все починили. Так что не вижу смысла менять код, особенно тем у кого ссылки плагином выводятся
26.04.2010 в 5:36 пп
Скрипты устраняющие ERROR автоматически