Было бы здорово, если бы появилась возможность блокировать адреса электронной почты с использованием подстановочных знаков. Например, когда спамеры используют трюк с точками в Gmail.
Это один и тот же адрес электронной почты. Спамеры могут использовать один адрес Gmail для создания неограниченного количества аккаунтов.
Я считаю, что блокировка адресов с использованием подстановочных знаков, как показано ниже, станет хорошим решением: e*x*a*m*p*l*e*@gmail.com
Я не обязательно считаю, что все регистрации с использованием таких вариаций адреса Gmail должны быть заблокированы. Просто было бы полезно, чтобы при блокировке адреса Gmail блокировались и все его вариации, либо чтобы мы могли вручную добавлять адрес Gmail с подстановочными знаками в чёрный список адресов электронной почты.
Да, это реальная проблема, с которой я сталкиваюсь: спамеры регулярно создают десятки тысяч аккаунтов с одного аккаунта Gmail, используя метод точек и достаточный пул IP-адресов.
Я вижу только использование метода точек, но не уверен на 100%, работает ли также метод с символом «+». В последний раз, когда я проверял, была возможность регистрироваться с использованием адресов электронной почты, содержащих символ «+», поэтому этот трюк тоже должен работать.
Может генерировать 16 777 216 уникальных адресов электронной почты только с помощью метода точек и практически неограниченное количество с помощью метода «+». Это делает процесс чрезвычайно эффективным для спамеров. Блокировка домена невозможна, так как это Gmail.
Вы можете увидеть генератор здесь (начинает тормозить после 8 тысяч комбинаций): Redirecting...
Если бы это действительно было реализовано с подходом, похожим на использование подстановочных знаков (вместо автоматической обработки системой Discourse), вам, вероятно, следовало бы быть гораздо более конкретным, чем e*x*a*m*p*l*e*@gmail.com. Такой подход может привести к блокировке невинных людей, особенно если адрес электронной почты спамера относительно короткий. Более безопасным вариантом, скорее всего, будет поиск именно символов . и +.
Спасибо за предупреждение об этой настройке levenshtein_distance_spammer_emails. Я никогда раньше не видел её и не менял — она стоит по умолчанию со значением 2.
Я не понимаю вашу математику. Вы можете добавлять только одну точку между символами, поэтому каждый адрес из N символов подходит только для 2^n адресов. Вероятно, можно было бы создать плагин, который сохранял бы или сравнивал адрес без точек и запрещал адреса с плюсом.
@pfaffman — я просто опирался на данные с Redirecting..., где для каждого дополнительного символа сверх двух количество адресов удваивается (хотя оно застревает примерно на 8 тысячах).
Думаю, 2*n, если я правильно понимаю, что вы имеете в виду (например, адрес из 26 символов имел бы 52 комбинации?), было бы слишком мало. Ведь в адресе можно расставить несколько точек.
Например: constantinehamilton1337x@gmail.com con.stantinehamilton1337.x@gmail.com co.nst.antineh.amilton1.3.37x@gmail.com constantineh.a.m.ilto.n13.37x@gmail.com c.o.nsta.ntinehamil.ton1337x@gmail.com
В любом случае, какова бы ни была точная цифра, это очень много. Да, ваше предложенное решение имеет смысл!
Да. Я неправильно считал. Я допускал только одну точку. Когда-то я почти знал эту математику, но сегодня утром забыл.
Но плагин, который сохранял бы снимок и, кроме того, бесплатную версию адреса в качестве дополнительного адреса, сделал бы то, что вы хотите, и это не было бы так сложно.
Думаю, ваша предыдущая реализация могла бы быть весьма полезной в качестве дополнительного средства борьбы со спамом. Она работала невероятно эффективно в тот короткий период, когда была доступна и включена (по умолчанию выключена).
В противном случае спамеры всё ещё могут создавать массовые аккаунты, используя один адрес Gmail, до того, как модератор или администратор заметит это. Например, создавая аккаунты, но сразу ничего не публикуя.
Администраторам и модераторам придётся вручную находить и открывать каждый отдельный аккаунт, чтобы заблокировать или удалить его. Это может быть довольно утомительно, особенно когда один спамер может создать сотни или даже тысячи аккаунтов с одного Gmail-адреса до того, как будет заблокирован. Кроме того, поиск по электронным почтам затруднён, например: j.ohan.2.1@gmail и jo.ha.n21@gmail.
Если их не выследить вручную, то спамеры сохранят большой пул аккаунтов для игры в «бей крота», при этом им понадобится лишь один Gmail-аккаунт, чтобы получить их все.
@sam Просто для уточнения после дополнительных полевых тестов: я считаю, что предыдущая реализация, которая была отменена, определённо гораздо эффективнее против мотивированных спамеров. Я всё ещё получаю значительное количество регистраций с использованием этих трюков с перестановкой точек в Gmail.
Я очень благодарен за то, что была внедрена текущая защита, которая работает очень эффективно. Однако, на мой взгляд, это уязвимость, что разрешается создание неограниченного количества аккаунтов с использованием одного и того же email-адреса, пока они не будут замечены и вручную заблокированы. Это создаёт дополнительную нагрузку на модераторов (которые, как я полагаю, по умолчанию не видят email-адреса аккаунтов, если эта функция не включена), особенно в отсутствие инструментов для массового удаления аккаунтов (например, выбор нескольких аккаунтов из списка поиска с помощью флажков и их одновременная блокировка/удаление). Это означает, что модератору приходится вручную переходить к каждому отдельному аккаунту, чтобы удалить или заблокировать его. Это особенно сложно при поиске аккаунтов с переставленными email-адресами.
Учитывая, что предыдущая реализация была опциональной (выключена по умолчанию), уже была разработана и работала как задумано, а затем удалена, просто кажется обидным, что она больше недоступна для сообществ, которые хотели бы использовать её для дополнительной защиты от спама со стороны мотивированных спамеров.
Вот почему я говорил, что определённые символы должны быть полностью запрещены в адресах электронной почты (опционально). Речь идёт о символах, позволяющих использовать подадресацию, например плюс, точка, дефис и т. д. С помощью регулярного выражения можно также блокировать их для конкретного сервиса, например: «не разрешать адреса с плюсом, заканчивающиеся на @gmail.com». cc @sam
Предыдущая реализация всё ещё позволяла использовать +addressing, сохраняя при этом только один канонический адрес на аккаунт (что, по моему мнению, скорее безопаснее).
Таким образом, вы могли быть зарегистрированы как sam+discourse-meta@gmail.com, что удобно для внутренних правил Gmail, которые у вас настроены. Но при этом система запрещала создание новых аккаунтов с адресами sam@gmail.com или sam+1@gmail.com.
Я не против добавления белого списка, но считаю, что принудительное приведение к каноническому виду довольно полезно в случае с Gmail и является неплохим значением по умолчанию.
Безопасность здесь не является основной целью. Указанный сайт требует более радикального решения из-за масштаба проблемы, с которой он сталкивается. Поскольку это опционально (добавьте свой собственный «регулярный выражение для защиты электронной почты»), для сайтов, которым это необходимо, это кажется мне вполне безопасным: они могут выбрать режим «Полная блокировка».
Однако правильное составление регулярного выражения довольно утомительно из-за необходимости экранирования. Я беспокоюсь о предоставлении таких опций, так как вероятность того, что пользователи правильно и в соответствии с намерениями составят регулярное выражение, довольно низка. Им нужно не забыть экранировать точки и знаки «плюс».
.*\+.*@gmail\.com
Мы могли бы, я полагаю, использовать упрощённый шаблон без регулярных выражений, который просто расширяет * и ?.
Если бы предыдущая реализация была возвращена в качестве опции, я считаю, что это полностью решило бы проблему с Gmail. По крайней мере, в моём случае. На мой взгляд, это идеальный вариант, который добавляет достаточно затрат ресурсов спамерам, чтобы борьба с ними стала управляемой. Это действительно разница между необходимостью круглосуточной интенсивной модерации и отсутствием таковой.
Я заблокировал несколько доменов, которые позволяют создавать подобные адреса и используют список разрешённых доменов электронной почты. Проблема в том, что люди могут создать множество аккаунтов до того, как один из их аккаунтов будет забанен/заблокирован (что активирует блокировку перестановок этого адреса Gmail для новых аккаунтов, но существующие аккаунты остаются нетронутыми). Это создаёт значительную нагрузку на модерацию и требует утомительной ручной очистки каждого отдельного аккаунта.
Например, у меня была тема, в которой было около 200 ответов, по одному сообщению от каждого аккаунта, все созданные с одного адреса Gmail. Много подобных случаев. Это пример, когда аккаунты легко найти, так как поиск их через перестановки исходного адреса Gmail в качестве альтернативы крайне затруднителен. Некоторые фармят большое количество аккаунтов, используя несколько адресов Gmail, и не публикуют сообщения на них до нескольких месяцев спустя.
Что касается блокировки с помощью регулярных выражений как решения: блокировка знака + была бы относительно безвредной, тогда как точки (.) вероятно заблокировали бы значительное количество легитимных адресов, например, john.smith@gmail.com. Блокировка адресов с более чем одной точкой, вероятно, нанесла бы минимальный сопутствующий ущерб, хотя всё ещё позволяла бы несколько перестановок адреса Gmail, но гораздо меньше, чем при наличии двух и более точек.
На мой взгляд, предыдущая реализация является идеальной и не слишком сложной для внедрения в качестве дополнительной защиты. Большинство популярных социальных сайтов не позволяют регистрироваться с использованием нескольких перестановок Gmail из-за их активного использования спамерами.
@sam, я твёрдо убеждён, что сайтам следует разрешить внедрять этот опциональный уровень блокировки email через регулярные выражения, если это необходимо. Иначе мы идём вразрез с одним из ключевых принципов Discourse — быть «безопасным по умолчанию».
Мы можем реализовать это к следующему релизу, хотя я всё ещё придерживаюсь своей первоначальной идеи: нормализация — самое удобное решение для администраторов сайтов. Вы просто ставите галочку, и вуаля — проблема решена. С регулярными выражениями вам придётся изучать их (это займёт около пяти часов), а в итоге вы получите решение, которое либо пропускает спам-аккаунты, либо неудобно для пользователей (запрет точек, плюсов), либо является компромиссом.
Тем не менее, конечно, мы можем добавить поддержку регулярных выражений к следующему релизу.
Ну, это действительно просто: «запрещены электронные письма с плюсом или точкой в адресе», что, надо признать, довольно ограничительно и очевидно, мы не хотели бы включать это по умолчанию. Но это как с «бомбардировкой»: всегда найдётся достаточно злоумышленников, из-за чего приходится держать кнопку запуска ядерных ракет, даже если вы не хотите её использовать.
Это как ядерная война. Как только ядерное оружие оказывается на столе, варианты, «удобные для пользователя», становятся невозможными; остаётся лишь надеяться, что большую часть времени вам никогда не придётся до этого доходить.