Невізуальні методи захисту сайту від спаму. Частина 2. Справжнє обличчя символів

Продовження статті Невізуальні методи захисту сайту від спаму

Частина 2. Справжнє обличчя символів
Невізуальні методи захисту сайту від спаму використовують, зокрема, аналіз переданого тексту. Спамери використовують багато прийомів, щоб ускладнити такий аналіз. Тут будуть показані приклади одного з них, а саме підстановки символів. Наведені приклади взяті з реальних даних компанії CleanTalk.

Підстановка символів дуже проста, але в результаті неї можуть не працювати фільтри стоп-словами, можуть працювати гірше байесовские фільтри, а також фільтри з визначенням мови. Тому перед застосуванням цих фільтрів є сенс повернути символів їхнє справжнє обличчя.


Відразу обмовлюся, що замінювати символи «в лоб», наприклад, національні символи з накресленням латинської 'a' на саму латинську 'a', абсолютно неприйнятно без аналізу мови і контексту. Також замінювати літери, схожі на нуль, самим нулем можна лише з випадку, коли точно відомо, що шукати в тексті (наприклад, номери телефонів).

Тим не менш, заміна символів допустима у разі, коли сенс написаного тексту після заміни зберігається. І необхідна для приведення якогось безлічі службових символів до одного.

Тут я покажу два найцікавіших, на мій погляд, способу такої підстановки символів зустрілися нам.

1. Заміна символів звичайного шрифту
Спамери роблять все, щоб текст кидався в очі, навіть при побіжному погляді. На щастя для них, Unicode надає набори латинських символів розширеного накреслення. На щастя для нас, це легко виправляється.

Нижче приведені найбільш розповсюджені способи, як латинські символи замінюються на ті ж латинські, але не з основного діапазону латиниці.










Вигляд символів Початку діапазону Приклад розширені U+FF01 ViaGra в рамках основні U+2460 ⑧-⑧⓪⓪-①②③-④⑤-⑥⑦ в рамках додаткові U+1F130 🄲🄰🄻🄻 в рамках додаткові U+1F150 🅝🅞🅦 в рамках додаткові U+1F170 🅵🅾🆁 в рамках додаткові U+1F1E6 🇫🇷🇪🇪
Заміна таких латинських символів на звичайні робиться простим регулярним виразом. Після такої заміни наступні фільтри працюють якісніше та швидше, т. к. діапазон вхідних значень сильно звужується.

2. Заміна точки
Точка як символ використовується набагато ширше, ніж знак — це і роздільник полів, і розрядів, і десяткових цифр у спамерських телефонних номерах і т. д.
Тому ми зіткнулися з необхідністю приведення різноманіття спамерських точок до однієї єдиною.

Найпоширеніші з зустрілися нам такі підстановки точок наведені нижче.











Замінник, код Замінник, вигляд U+3002 U+0701 ܁ U+0702 ܂ U+2024 U+FE12 U+FE52 U+FF61
Заміна точок може бути виконана простим регулярним виразом
tr/
 
\N{U+3002}\N{U+0701}\N{U+0702}\N{U+2024}\N{U+FE12}\N{U+FE52}\N{U+FF61}
 
/
 
\N{U+002E}\N{U+002E}\N{U+002E}\N{U+002E}\N{U+002E}\N{U+002E}\N{U+002E}
 
/
 

Помічено, що після заміни точок наступні фільтри реально працюють ефективніше.

3. Висновок
Я навів два способи підстановки символів. Зворотна заміна проста, невимоглива до ресурсів і сильно підвищує правильність роботи фільтрів, заснованих на аналізі слів та виразів.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.