линия

Главная

вторник, 17 апреля 2018 г.

Bitrix - простая защита от спама

Есть такая профессия - спамить. Спамеры и их приспешники спам роботы напрочь лишены совести.  Как только нащупают на морде сайта форму обратной связи тут же начинают слать некому ненужные сообщения об увлечения , укрепления мужского органа или же быстрый способ заработать бабосиков. Это раздражает. Еще сильнее раздражает если это твой сайт.
В одно время на все сайты под управлением старины Bitrix  посыпались дружно письма сомнительного содержания. Методом дедуктивного анализа  пришел к  весьма логическому выводу. Взломали, взломали капчу, ублюдки лишь промолвил я. Менять капчу не было никакого желания. Хотелось  некой функции, которую копируешь один раз и он сразу же спамеров посылает на хрен. И дабы не терять времени быстренько накидал эту саму фугкцию.






Итак, ближе к делу.
Открываем bitrix/php_interface/init.php , если нет до создаем файл.
И туда вставляем это:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler"));
class MyClass{
    // создаем обработчик события "OnAfterIBlockElementAdd"
    function OnBeforeIBlockElementAddHandler(&$arFields){
 //Если инфоблок Отзывов
        if($arFields["IBLOCK_ID"] == 22){
   if(  preg_match("/^[a-zA-Zа-яА-Я0-9_ ,.;?:()]+$/i", $arFields["PREVIEW_TEXT"])){  
   //все ок.
   return true;   
   }else{
    global $APPLICATION;
          $APPLICATION->throwException("Разрешены только цифры, буквы и знаки препинания(, . : ; )");
    return false;   
   }  
  }
    }
}

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

Вот и все.
Ну, напоследок несколько приколов собственной выдачи





1 комментарий:

  1. Sloty Casino in Las Vegas - MapYRO
    The sloty casino is located at 3500 South Las Vegas Blvd. South 대구광역 출장마사지 Las Vegas, NV 89109. 광명 출장안마 Get Directions, Directions, Address, 영주 출장마사지 Phone number, 오산 출장안마 Tripadvisor rating, 대전광역 출장마사지

    ОтветитьУдалить