Как узнать, кто «слил» ваш e-mail? — Личный опыт на vc.ru
Простой и рабочий способ.
14 603 просмотров
Привет! Думаю, практически каждый человек в современном мире сталкивался с ситуацией, когда почтовый ящик превращается в помойную яму, в которую не хочется заходить. Оставили где-нибудь неудачно свою почту и полетел в неё спам да рассылки, на которые вы никогда в жизни не подписывались. Знакомо?
Конечно, добавить адрес отправителя в блок-лист или пометить письмо как спам не так уж и сложно. Но вопрос в другом — как узнать, кто сливает базу и какому интернет-сервису свою почту доверять больше не стоит? Пару лет назад я открыл для себя удивительнейший в своей простоте способ, о котором расскажу вам прямо сейчас.
Переходим к сути
Итак: представим, что судьба нас столкнула с необходимостью указать адрес своей электронной почты где-нибудь в Интернете. Предположим, что это VC. ru (нет никаких сомнений, что VC обращается с моим почтовым адресом трепетно и бережно — это просто пример).
Почта наша при этом, допустим, выглядит так: [email protected] com
Всё, что нам нужно сделать — добавить перед @ символ «+», после которого следует написать адрес сайта / название сервиса / любые опознавательные знаки, которые помогут вам точно определить, где вы этот адрес указывали. Таким образом, если это регистрация на VC. ru, то адрес, который мы укажем, может выглядеть так: [email protected] com
А теперь самое интересное: письма, отправленные на такой адрес, всё равно будут попадать в ваш основной почтовый ящик. Просто при этом вы будете видеть, на какой именно адрес изначально было отправлено то или иное письмо:
Регистрируетесь в каком-нибудь сервисе? Оставляете при регистрации адрес в формате pochta+название_сервиса@gmail. com. Регистрируетесь на мероприятие и снова нужно указать почту? Оставляем адрес pochta+название_мероприятия@gmail. com. Вручаем адрес кому-нибудь лично? pochta+имя_человека_которому_мы_дали_свою_почту
@gmail. com и так далее — суть, думаю, понятна.Как итог — вы будете безошибочно понимать, кто «слил» вашу почту, если на неё начнут приходить письма с сомнительным содержанием. Для этого достаточно будет лишь обратить внимание на адрес получателя письма.
Работает приём как в почте Google, так и в почте Yandex. Допускаю, что и с другими почтовиками всё фунциклирует прекрасно.
А с телефонными номерами так можно?
Именно так — нельзя. Но есть лайфхак особо изощрённых.
Оставляя свой телефонный номер, вы можете указывать разные имена и вести табличку, записывая, где и под каким именем вы представлялись.
Регистрируемся на мероприятие? Представились как Олег, в табличку пометили. В магазине попросили имя и номер для регистрации карты клиента? Представились Игорем и так же пометили в свою табличку.
В итоге если вам звонят мошенники или спамеры и обращаются к вам по имени из таблички — бинго. Вы точно знаете, кто «поделился» вашим телефонным номером.
Звучит, наверное, уж слишком упорото — но я действительно лично знаю людей, которые так делают.
Всем поменьше спама в интернете, а если способ вам показался интересным — приятного использования)
E-mail канал — База знаний Webim
Зачем нужна интеграция
Отправка писем посредством электронной почты является самым старым и распространённым способом обмена сообщениями в Интернете. Электронная почта требуется для регистрации практически в любом сервисе, поэтому электронный почтовый адрес — это первое, что заводит пользователь для взаимодействия с внешними системами. Поэтому и сегодня часть пользователей предпочитает контактировать через переписку по e-mail, не прибегая к использованию иных каналов. Почтовый ящик технической поддержки компании всегда присутствует в контактной информации: на сайте, в социальных сетях, в печатных и рекламных материалах. Соответственно, обращения, оставленные посредством электронной почты, для обеспечения качественного сервиса также необходимо своевременно обрабатывать.
Ввиду этого целесообразно, чтобы обращения по e-mail поступали, аналогично другим каналам, в одно место, и операторам не приходилось бы одновременно следить за обращениями на различных страницах и сервисах. В связи с этим Webim реализовал возможность интеграции с e-mail каналом, чтобы данные обращения также попадали в РМО, распределялись на операторов и обрабатывались в едином интерфейсе. Это реализовано при помощи настройки переадресации писем в Панель управления Webim.
Общая инструкция подключения
Откройте приложение или веб-версию Webim и откройте Общие настройки в меню слева. Далее откройте вкладку *
Общие настройки
В боковом меню выберите Каналы общения, выберите E-mail, нажмите Добавить канал.
Добавление e-mail канала
Заполните поля в соответствии с пояснениями (все они обязательны к заполнению). Обратите внимание, что для интеграции нужно присылать письма именно на Ваш адрес, а уже с него они должны автоматически пересылаться на сгенерированный нами. В противном случае корректная работа интеграции не гарантируется.
Скопируйте сгенерированную почту, нажмите Сохранить.
Форма добавления e-mail канала
Произведите настройки со стороны почтового сервиса, примеры: Mail.ru, Yandex, Gmail.
Оставьте вкладку с настройками открытой. В новой вкладке откройте Рабочее место оператора Webim, скопируйте код подтверждения из сообщения.
Код подтверждения
Вернитесь в настройки почты и вставьте скопированный код подтверждения из предыдущего шага.
Сохраните настройки почты.
Настройка пересылки в Mail.ru
В левом нижнем углу нажмите Настройки.
Открытие настроек почты mail.ru
Далее в том же углу нажмите Все настройки.
Открытие настроек почты mail.ru
Перейдите на вкладку Фильтры и нажмите Добавить пересылку.
Добавление пересылки
В открывшейся форме вставьте адрес пересылки Webim и нажмите Сохранить.
Ввод адреса пересылки
Настройка пересылки в Yandex
Перейдите в Правила обработки почты.
Правила обработки почты
Нажмите Создать правило.
Кнопка Создать правило
Выберите Переслать по адресу и введите адрес, который был сгенерирован в Webim.
Настройка пересылки по адресу
Настройка переадресации в Gmail
В правом верхнем углу откройте Настройки почты -> Все настройки.
Настройки почты
Выберите вкладку Пересылка и POP/IMAP, нажмите Добавить адрес пересылки, в открывшемся окне вставьте скопированный на шаге 3 адрес, нажмите След. .
Добавление адреса пересылки
Адрес добавлен, нажмите ОК.
Подтверждение
Выберите Пересылать копии входящих сообщений на адреса.
Пересылать копии входящих сообщений на адреса
Нажмите Сохранить изменения.
Сохранение изменений
Настройка переадресации сервера
Корректно настроить переадресацию писем на сгенерированный нами e-mail на уровне пользователя почтового клиента невозможно. Поэтому, если вы используете собственный почтой сервер, то обратитесь к администраторам почтового сервера для настройки переадресации. Обратите внимание, что в письмо не должны добавляться никакие новые заголовки и не должно изменяться поле Отправитель.
NB
Обратите внимание на смежные понятия, описанные ниже:
* Клиентские приложения (напр. **Outlook**, **Thunderbird**) делают **remailing** (**пересылку**) с изменением сообщения.Изменяться оно может цитированием, сдвигом, добавлением заголовком или всем вместе. By contrast, the terms remailing or redistribution can sometimes mean re-sending the message. * В случае **forwarding** (**переадресации**), изменяется получатель (на того, кому пересылается), а отправитель остаётся без изменений. Plain message-forwarding changes the envelope recipient(s) and leaves the envelope sender field untouched.
Мы не гарантируем корректную работу канала e-mail, если писать непосредственно на сгенерированную нами почту. Нужно писать на указанный Вами адрес, с тем чтобы уже оттуда письма автоматически переадресовывались нам. В этом случае обращения должны корректно поступать в Webim.
Почему компании не подтверждают адрес электронной почты перед регистрацией? | by Sajid Saiyed
Уроки UX
Практический пример UX
Иллюстрация предоставлена Vecteezy. comЕсли вы следили за моими сообщениями, возможно, вы читали статью, которую я опубликовал ранее в этом году, о моем опыте отказа от подписки на мою электронную почту ID с сайта, где кто-то зарегистрировал его без моего согласия.
Это подводит меня к сегодняшней теме, почему некоторые компании не проверяют адрес электронной почты перед регистрацией пользователей на своем веб-сайте? Это еще хуже, когда речь идет о финансовых учреждениях (как в моей статье об отказе от подписки) и банках (как в этой статье).
Итак, давайте разоблачим это злоупотребление служебным положением в этой статье, и, надеюсь, рассматриваемый банк извлечет из этого некоторые уроки пользовательского опыта.
Справочная информация
Банк: RBL Bank (базируется в Индии)
Проблема: Мой тезка подал заявку на получение сертификата в этом банке, используя мой адрес электронной почты.
Речь идет о банке RBL Bank. 20 ноября 2021 года я получил это электронное письмо, из которого я узнал, что кто-то (имя которого совпадает с моим) подал заявку на получение кредитной карты и предоставил мой идентификатор электронной почты. Банк не проверил идентификатор электронной почты и отправил электронное письмо, которое попало в мой почтовый ящик. Письмо было о запланированном получении документов и содержало полный адрес этого человека ( очень страшно, что банк отправляет личную информацию без какой-либо проверки ).
Как видите, электронное письмо пришло с адреса noreply@, поэтому, даже если я хочу отметить это, у меня не было возможности сделать это. Самое смешное, что в конце письма есть отказ от ответственности. Он говорит мне «уведомить нас немедленно», но как???
Я соблюдаю уведомление о конфиденциальности в нижней части электронного письма и, следовательно, размываю важную информацию, чтобы не раскрывать ее.
Номер урока UX: 1
Укажите режим ответа на автоматически сгенерированные электронные письма, когда вы ожидаете, что пользователи уведомят вас о каких-либо проблемах. Адрес электронной почты noreply@ не помогает.Урок UX №: 2
Если вы разрешаете пользователям регистрироваться с использованием адреса электронной почты, первое, что вы должны сделать, это подтвердить адрес электронной почты перед отправкой любой личной информации (PII) на этот адрес электронной почты.
Не в силах ничего сделать, я просто оставил все как есть. Ожидая, что больше ничего из этого не выйдет. Но я был неправ. Через несколько дней заявка на CC была одобрена, и я получил еще одно электронное письмо:
Письмо снова пришло с адреса noreply@. Поэтому, несмотря на сильное желание сообщить об этом, я не смог. Итак, я зашел на их сайт и использовал контактную форму, чтобы сообщить о проблеме. Я так и не получил никакого ответа на эту отправку формы.
Урок UX №: 3
Формы обратной связи отражают большое количество настроений клиентов. Отвечайте на них и анализируйте их, чтобы узнать, как улучшить свои услуги и продукты.
Пять дней спустя я получил еще одно электронное письмо с зашифрованным документом, содержащим PIN-код кредитной карты этого пользователя 😳
К счастью, на этот раз электронное письмо пришло с адреса электронной почты, на который я (думал) мог ответить. Поэтому я написал ответ о том, что, хотя это меня раздражает, этот человек потенциально может причинить больше вреда банку, чем мне.
До сих пор на это письмо не ответили. Но вы только посмотрите на количество конфиденциальной информации в этом письме. Если кто-то может узнать дату рождения человека, он может получить доступ к этому зашифрованному файлу.
Урок UX №4
Когда вы отправляете зашифрованные документы пользователям, не добавляйте информацию о пароле в одно и то же электронное письмо. Отправьте два отдельных электронных письма, одно из которых содержит только документ, а второе содержит информацию о пароле.(Хотя в этом случае я бы все равно получил оба письма 😂)
Теперь давайте на мгновение обратим наше внимание на этого клиента. Я предполагаю, что этот человек не знает, что такое адрес электронной почты, и предоставил банку то, что, по их мнению, является их адресом электронной почты. Теперь этот пользователь не смог получить доступ к своей онлайн-учетной записи и запросил одноразовый пароль (OTP) для доступа к учетной записи. Угадай, что? …. OTP пришел на мой почтовый ящик.
Бедный клиент теперь генерирует OTP за OTP, и я продолжал получать электронные письма. Последнее пришло всего несколько часов назад:
RBL Bank, к настоящему моменту вы бы уже поняли, сколько раздражения, боли и разочарования вы причиняете всем. Я искренне надеюсь, что вы узнаете что-то из этого.
Проверка электронной почты для системы регистрации приложений Android | Ахмед Гад
Фото Ричарда Балога на UnsplashВ предыдущем уроке под названием Создание системы входа в систему Android
, мы создали систему входа в систему Android, которая позволяет пользователю регистрироваться по имени, фамилии, имени пользователя и паролю. Сервер Flask прослушивает запросы пользователя и вставляет новую запись в базу данных MySQL. После успешной регистрации пользователь может войти в систему и пройти проверку на сервере.
Это руководство является дополнением к предыдущему и позволяет пользователям вводить адрес электронной почты при регистрации. Чтобы подтвердить право собственности на введенный адрес электронной почты, на этот адрес отправляется электронное письмо с кодом подтверждения. Пользователь копирует код, отправленный по электронной почте, и вставляет его в приложение, чтобы завершить процесс проверки электронной почты.
После успешной проверки адреса электронной почты в базу данных MySQL для пользователя добавляется новая запись. Подтвержденный адрес электронной почты можно использовать для связи с пользователем в будущем и для сброса пароля.
В этом руководстве рассматриваются следующие разделы:
- Добавление столбца в таблицу базы данных для электронной почты
- Отправка электронной почты с помощью Python
- Код подтверждения
- Шифрование текста
- Генерация ключей шифрования
- Проверка кода
- Расшифровка текста
- Добавление EditText для электронной почты в приложение Android
Проект GitHub для этого руководства доступен здесь.
ahmedfgad/AndroidChat
Вы не можете выполнить это действие в данный момент. Вы вошли в другую вкладку или окно. Вы вышли из системы на другой вкладке или…
github.com
Содержание этого руководства применимо к работающему приложению в магазине Google Play под названием 9.0123 Чат HiAi , доступен здесь.
HiAi Chat — Приложения в Google Play
HiAi Chat — это бесплатное и безопасное приложение для обмена текстовыми сообщениями, позволяющее отправлять и получать текстовые сообщения всем, кто зарегистрирован в…
play.google.com
Давайте начнем.
В предыдущем руководстве была создана база данных с именем chat_db
. В базе данных есть только одна таблица с именем пользователей
для хранения данных зарегистрированных пользователей. users
table has the following columns:
- id
- firstname
- lastname
- username
- password
- registration_date
We’re going to add a new column in the users
table named email
. Нет необходимости удалять предыдущую таблицу, чтобы добавить новый столбец, потому что мы можем сделать это с помощью операции ALTER TABLE
. Код Python, используемый для добавления нового столбца, показан ниже:
В настоящее время столбец электронной почты
добавляется в таблицу пользователей
. Далее мы рассмотрим отправку электронных писем с помощью Python. Как только мы сможем отправлять электронные письма, мы можем отправлять коды подтверждения для проверки учетных записей пользователей.
Python предоставляет библиотеку с именем smtp
для отправки электронных писем. Для этого используется следующая функция с именем send_email
. Функция принимает 3 аргумента:
- тема : Тема сообщения
- body : тело сообщения
- электронная почта : электронная почта получателя, введенная пользователем
Чтобы эта функция работала, нам нужно отредактировать следующие 4 переменные внутри функции:
- порт : порт, используемый для отправки письма через сервер.
- smtp_server : Сервер на основе вашей почтовой системы. Например, если используется Gmail, установите его значение
smtp.gmail.com
. - sender_email : Адрес электронной почты, с которого будет отправлено сообщение.
- пароль : Пароль электронной почты
После того, как мы сможем отправлять электронные письма, мы должны иметь возможность отправлять коды подтверждения на адреса электронной почты, указанные в регистрационной форме.
На основании того, что мы узнали из предыдущего руководства, когда пользователь нажимает кнопку Зарегистрировать
в приложении для Android, вводимые пользователем данные отправляются на сервер, и в базу данных добавляется новая запись, если имя пользователя не существовать.
В этом уроке есть небольшая модификация после добавления по электронной почте столбец
в таблицу пользователей
. Когда сервер получит запрос на регистрацию, будет выполнена функция register()
, указанная ниже. Эта функция выполняет 2 задачи:
- Гарантирует, что имя пользователя
пользователей
, где столбецимя пользователя
равен текущему имени пользователя или столбецадрес электронной почты
равен текущему адресу электронной почты. - Вызывает функцию с именем
send_verification_code()
для отправки кода подтверждения.
Реализация функции send_verification_code()
приведена ниже. Все, что он делает, это вызывает функцию с именем encrypt_text()
, которая шифрует адрес электронной почты, введенный пользователем. После этого подготавливается тело письма, в которое встраивается зашифрованное письмо. Наконец, электронная почта отправляется с помощью функции send_email()
, которая обсуждалась ранее. Давайте обсудим, как функция encrypt_text()
реализована.
Реализация функции encrypt_text()
показана ниже. Он принимает текст для шифрования в качестве входных данных и возвращает зашифрованный текст. Как происходит это шифрование? Это делается с помощью библиотеки под названием cryptography
. В этой библиотеке реализован алгоритм шифрования AES
с именем Fernet
. Он реализован в классе cryptography.fernet.Fernet .
Чтобы зашифровать сообщение, мы должны сначала сгенерировать ключ шифрования. Ключ можно сгенерировать с помощью функции cryptography.fernet.Fernet.generate_key() .
В приведенной выше функции используются 2 ключа, чтобы хакерам было трудно взломать шифрование. Ключи можно сгенерировать с помощью приведенного ниже кода. Каждый ключ сохраняется в отдельном файле. Первый ключ сохраняется в файле Encryption_key1.key
, а второй — в файле Encryption_key2.key 9.файл 0126.
После того, как ключи сгенерированы, вы должны обеспечить их безопасность, поскольку они будут использоваться для шифрования и расшифровки всех электронных писем.
Библиотека cryptography
позволяет использовать более одного ключа одновременно, используя класс cryptography.fernet.MultiFernet
. Используя метод encrypt()
, электронная почта будет зашифрована и возвращена через функцию encrypt_text()
.
Предположим, что адрес электронной почты, который нужно зашифровать, — [email protected]
. If the 2 keys are as follows:
- lGb0Xm-saWeojY9uIrKfZ9xwDDV1RSUr2AkCAgTAnuY=
- uR8FMwt-2I05eR5ggmRlqX_um20zR7x1EQDTvNH7esU=
Then the encrypted email is as follows:
gAAAAABdn0PCEuEAJ0GOixRJ48Lr7skDO0y7jtvNION0hP1oIsoI45nXq5OgxmU43Fs26cZu2tsMLCnbtzLPOkqmFEM7hTL8LUaQDNDB223Mq3E-OfErgUE=
The encrypted email is inserted in a message to the пользователь. В соответствии с функцией send_verification_code()
сообщение выглядит следующим образом: предполагается, что имя — Ахмед, фамилия — Гад, а имя пользователя — ахмедгад.
Привет, Ахмед Гад,
Спасибо за регистрацию в системе чата HiAi.
Ваше имя пользователя ahmedgad.
Чтобы подтвердить свою учетную запись, просто скопируйте приведенный ниже код подтверждения, вернитесь в приложение Android, вставьте код и, наконец, нажмите кнопку «Подтвердить».
GAAAAABDN0PCEUEAJ0GOIXRJ48LR7SKDO0Y7JTVNION0HP1OISOI45NXQ5OGXMU43FS26CZU2TSMLCNBTZLPOKQMFEM7HTL8LUAQDNDB23MQNBTZLPOKQMFEM7HTL8LUAQDNDB23MQNBTZLPOKQMFEM7HTL8FS26CU2TSMLCNBTZLZLPOKQMFEM7HTL8FS26CU2SMLCNBTZLZLCLCMFEM7HTL80019
Удачи
Как указано в электронном письме, пользователь должен скопировать код подтверждения, перейти в приложение Android, вставить код туда, а затем нажать кнопку «Подтвердить», чтобы отправить код подтверждения на сервер.
Сервер проверяет адрес электронной почты с помощью функции verify()
, показанной ниже. Сначала он извлекает поля, введенные при регистрации, и проверяет, не используются ли имя пользователя и поля электронной почты другим пользователем. Мы сделали это ранее в register()
, но другой пользователь мог использовать либо имя пользователя, либо пароль за время, необходимое для копирования и вставки кода подтверждения.
Если имя пользователя и адрес электронной почты по-прежнему доступны, код подтверждения, вставленный пользователем, будет проверен с помощью функции verify_code()
, которая показана ниже. Он расшифровывает адрес электронной почты с помощью функции с именем decrypt_text()
.
Если расшифрованное сообщение электронной почты совпадает с адресом электронной почты, введенным пользователем, проверка завершена успешно и функция verify_code()
вернет True
. В противном случае возвращается False
.
Если возвращается True
, то функция verify()
вставит новую запись в базу данных для пользователя, а затем отправит электронное письмо, информирующее пользователя об успешном завершении регистрации.
На сервере код подтверждения расшифровывается с помощью функции decrypt_text()
. Подобно функции encrypt_text()
, она считывает 2 ключа и создает экземпляр cryptography.fernet.MultiFernet
класс. Для расшифровки используется функция decrypt()
, и возвращается расшифрованный текст.
В это время сервер может проверить адрес электронной почты. Полный код сервера показан ниже.
После того, как сервер подготовлен, следующим шагом будет редактирование приложения Android, добавление поля для ввода пользователем адреса электронной почты и отправки кода подтверждения.
Макет действия Регистрация
изменен, чтобы разрешить добавление новых представлений для электронной почты и кода подтверждения. Макет XML показан ниже:
Экран операции Регистр
показан ниже. Вы можете видеть, что представление EditText кода подтверждения и кнопка CONFIRM
не включены. Они будут включены только после того, как сервер отправит код подтверждения.
При нажатии кнопки REGISTER
вызывается метод register()
. Он извлекает значения из регистрационной формы и подготавливает объект JSON с такими значениями. Поскольку наша цель — зарегистрировать нового пользователя, то поле subject
объекта JSON имеет значение register
. После создания объекта JSON метод postRequest()
используется для создания и отправки сообщения HTTP на сервер.
После того, как сервер получит запрос на регистрацию, он отправляет код подтверждения на введенный адрес электронной почты. Как только сообщение отправлено, оно отвечает приложению Android, чтобы сообщить ему, что регистрация ожидает проверки адреса электронной почты, и будут включены как EditText, так и кнопка проверки. Это показано ниже.
После нажатия кнопки CONFIRM
вызывается метод verifyEmail()
, который также реализован, как показано ниже. Подобно методу register() , он извлекает значения из всех полей в дополнение к получению вставленного проверочного кода. После этого подготавливается объект JSON, и его тема теперь имеет значение verify
. Наконец, вызывается метод postRequest()
для создания и отправки HTTP-запроса на сервер.
При вводе действительного проверочного кода сервер успешно регистрирует пользователя, как показано во всплывающем сообщении, напечатанном на следующем рисунке.
После этого вы можете войти в систему с новым именем пользователя и паролем, как показано ниже.
Полная реализация операции Register
указана ниже, в рамках которой реализована функция postRequest()
.
В этом учебном пособии система регистрации и входа в систему, созданная в предыдущем учебном пособии, была расширена, чтобы пользователь мог добавить адрес электронной почты. Чтобы убедиться, что адрес электронной почты принадлежит пользователю, на адрес электронной почты отправляется проверочный код. Как только пользователь скопирует и вставит проверочный код, он будет успешно зарегистрирован в системе.
Примечание редактора: Heartbeat — это интернет-издание и сообщество, управляемое авторами, посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Независимая от редакции, Heartbeat спонсируется и публикуется Comet , платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.
Если вы хотите внести свой вклад, позвоните по телефону для участников . You can also sign up to receive our weekly newsletters ( Deep Learning Weekly and the Comet Newsletter ), join us on Slack , and follow Comet on Twitter and LinkedIn для ресурсов, событий и многого другого, что поможет вам быстрее создавать лучшие модели машинного обучения.