Запрет регистрации с некоторых почтовых сервисов

2405
Повадились значит ко мне регится пользователи с сервисов однократного мыла и гадить на сайте...замучился удалять, на что сделал простой но милый хак.

Итак начнём с админки:
в файле admin/components/registration/backend.php добавляем после

Код PHP:
  1. //SAVE CONFIG
  2. if ($opt=='saveconfig'){
  3.  
  4. if (!cmsCore::validateForm()) { cmsCore::error404(); }
  5.  
строку

Код PHP:
  1.  
  2. $cfg['block_domain'] = cmsCore::request('block_domain', 'str');
  3.  
Далее спускаемся вниз

после строки

Код PHP:
  1. <li><a href="#form"><span>Форма</span></a></li>
добавляем новую вкладку

Код PHP:
  1. <li><a href="#dom"><span>Запрещенные домены</span></a></li>
Дальше собственно после
Код PHP:
  1.  
  2. <td><strong>Запрашивать дату рождения при регистрации:</strong> </td>
  3. <td>
  4. <label><input name="ask_birthdate" type="radio" value="1" <?php if ($cfg['ask_birthdate']) { echo 'checked="checked"'; } ?>/> Да</label>
  5. <label><input name="ask_birthdate" type="radio" value="0" <?php if (!$cfg['ask_birthdate']) { echo 'checked="checked"'; } ?>/> Нет</label>
  6. </td>
  7. </tr>
  8. </table>
  9. </div>
  10.  
Добавляем код вкладки:

Код PHP:
  1.  
  2. <div id="dom">
  3. <table width="661" border="0" cellpadding="10" cellspacing="0" class="proptable">
  4. <tr>
  5. <td width="308"><strong>Домены почты с которых запрещена регистрация:</strong></td>
  6. <td>
  7. <textarea name="block_domain" id="block_domain" style="width:300px"><?php echo $cfg['block_domain']; ?></textarea>
  8. </td>
  9. </tr>
  10. </table>
  11. </div>
  12.  
Теперь зайдя в админку появится новая вкладка с текстовым полем в которую через пробел вписываете надоедливые сервисы.

Теперь переходим к самому компоненту.

в файле /components/registration/frontend.php ищем строчку:

Код PHP:
  1.  
  2. // Проверяем email
  3. if(!$item['email']) { cmsCore::addSessionMessage($_LANG['ERR_EMAIL'], 'error'); $errors = true; }
  4.  
И добавляем:

Код PHP:
  1.  
  2. //Проверяем email на черный лист
  3. $cfg = $model->config;
  4. $raw_mail = explode("@",$item['email']);
  5. $mail_domain = strtolower($raw_mail['1']);
  6. if(strstr($cfg['block_domain'],$mail_domain)) {die("Domain not good");}
  7.  
вы конечно можете заменить вызов die на что то более красивое но мне кажется не стоит тратить ресурсы на спамеров.
Компонент AjaxChat для 1.10 теперь бесплатен! | Бесплатный компонент погоды
Комментарии (26)
Роман 16 февраля 2013 в 12:03 0
Спасибо! Сергей Игоревич, а для какой версии ваш хак?
Сергей Игоревич 16 февраля 2013 в 12:04 +2
Я сделал на 1.10 но в принципе для любой
Anabiotick 16 февраля 2013 в 12:18 +1
Вещь хорошая и нужная. Одно плохо, этих сервисов с временным мылом - как собак не резанных, базу набивать долго придется.
Скрытый текст виден только зарегистрированным пользователям
letsgo 16 февраля 2013 в 12:21 -1
Вот именно. Сервисов для ящиков тысячи, плюс возможности создать для себя на любом хостинге.
Anabiotick 16 февраля 2013 в 12:25 0
Но вещь все равно нужная. Работа по удалению паразитов будет все же облегчена. Ведь и интернет-сервисы блэклистов не дают высоких гарантий защиты от мусорников.
Avert 16 февраля 2013 в 12:42 +1
Anabiotick:
Вещь хорошая и нужная. Одно плохо, этих сервисов с временным мылом - как собак не резанных, базу набивать долго придется. Да и некоторые пользуются возможностями собственных хостинговых сервисов. Прицепил домен какой-нибудь левый на пару деньков, создал мыло, нашалил и отклеил домен. С такими сталкивался.
Есть кроме сервисов и проги.
Майкл 16 февраля 2013 в 13:55 +1
С ветрянными мельницами удумали бороться? )
Avert 16 февраля 2013 в 14:36 0
Maikl:
С ветрянными мельницами удумали бороться? )
В точку!!!
CozaNostra 16 февраля 2013 в 17:52 +3
+, может сделать и белый лист и в админке выбирать какую защиту использовать,

Белый лист - разрешить только указаные сервисы.
Черный лист - запретить указаные сервисы.
Reborn 16 февраля 2013 в 18:13 0
В идеале да)
Александр 11 октября 2014 в 02:26 0
хорошая идея, а пока поставил , вроде все отлично, буду тестить(проверять) надоели временные почты.
Эдька 16 февраля 2013 в 18:04 0
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.


Вот с этих у вас регистрация идет ?
Сергей Игоревич 16 февраля 2013 в 18:05 0
Есть такие
Эдька 16 февраля 2013 в 19:07 0
к стенке таких. как 44 году. за спам расстрел
Сергей Игоревич 16 февраля 2013 в 19:52 0
dlahanro.ru mailcatch.com sedfile.ru у меня стоит
yrenzii 16 февраля 2013 в 19:22 0
В нете можно найти список спамерских ip, можно ли сделать фильтрацию по ip?
lokanaft 25 февраля 2013 в 12:37 +2
Если я запрещу gmail.ru, то и mail.ru попадёт под раздачу...
Сергей Игоревич 25 февраля 2013 в 15:19 +1
Предложения ?
Александр 11 октября 2014 в 03:31 0
жалко unmail.ru тоже попадает =\

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


только с unmail не работал mail.ru что для меня важно все почти используют его. надеюсь проблем с bk.ru inbox.ru и list.ru не будет. проверить думаю все равно стоит. пошел проверять. если у кого будут проблемы там с Яндексом или Гуглом скажите, хотя мне особо они не нужны, но все же дополнительный пользователь.
GarikKR 27 февраля 2013 в 14:42 0
Подскажите пожалуйста как подправить чтоб на 1.9 работало
Benutzer 9 декабря 2014 в 18:38 +1
у меня 1.10.4 работает)))
Benutzer 9 декабря 2014 в 18:38 +1
у меня 1.10.4 работает)))
Bugaz 27 февраля 2013 в 21:21 +1
Спасибо! А то заманали регится с mailcatch.com
Endroid 2 марта 2013 в 13:10 0
Спасибо за интересное решение. ТОже столкнулся с назойливым mailcatch.com
Константин Г. 7 апреля 2013 в 13:09 -1
Хм. Сервер рвет соединения после этого.... если эмаил в списке...
Константин Г. 7 апреля 2013 в 13:12 -1
не всегда но бывает