Есть ли способ получить адрес электронной почты того, кто щелкнул ссылку на outlook? - PullRequest
0 голосов
/ 10 января 2019

Я разработал приложение, в котором все процессы организации будут обрабатываться онлайн. Есть некоторые процессы, которые запускались вручную, и это заняло время, теперь он будет одобрен или не одобрен в сети.

Допустим, есть документ, который будет утвержден HR ---> ADMIN ---> CEO.

Теперь, когда кто-то инициирует приложение запроса, отправляет две ссылки менеджеру по персоналу, который одобряет или не одобряет, и HR может выполнить свое действие, щелкнув по этой ссылке.

Что происходит, если менеджер по персоналу отправляет эти ссылки кому-то еще, ТАК. Этот человек может также одобрить или не одобрить процесс, хотя он не является подходящим человеком для этого.

Я могу остановить это, внедрив процесс аутентификации на этих двух ссылках. Чем должны обладать все полномочия для входа в приложение. который я не хочу.

Можно ли каким-либо образом выбрать идентификатор электронной почты человека, который щелкнул по этой ссылке, чтобы я мог сравнить адрес электронной почты на внутреннем сервере?

enter image description here

1 Ответ

0 голосов
/ 10 января 2019

На мой взгляд, у вас есть 3 возможных способа сделать это:


1: Реализация процесса аутентификации

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

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


2: использование ссылки с одноразовым токеном

Это в основном подход, который вы упомянули с доводом "против", о котором вы упомянули, а именно: кто-то может просто переслать письмо, а кто-то другой может одобрить его.

Единственный способ в вашем случае, чтобы это работало, - это если он применяется сверху вниз, так как в управлении может налагаться штраф, если такое электронное письмо отправлено кому-то другому. Но это редко хорошая стратегия, и ее трудно реализовать.


3: утвердить и отклонить ответным письмом

Я думаю, что этот подход может быть наиболее близким к тому, что вы ищете, но как заявление об отказе от ответственности я раньше не проверял нечто подобное.

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

Пример ссылки: <a href="mailto:approvedisapprove@system.com?Subject=Approve%20%5BIDNumberHere%5D&body=UniqueID%3D123456" target="_top">Approve</a>

Затем в создаваемой системе вам нужно будет отслеживать этот почтовый ящик, а затем анализировать все полученные электронные письма, используя адрес от, чтобы проверить, отправил ли правильный человек письмо.

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

Даже с уникальным токеном существует другой вектор атаки, хотя это потребует некоторой работы. Допустим, система отправляет письмо Алисе, потому что ей нужно что-то одобрить или не одобрить, она отправляет почту Бобу. Боб не может щелкнуть ссылку и отправить электронное письмо как есть, потому что система увидит, что оно пришло с его адреса электронной почты, но Боб может нажать на ссылку, чтобы увидеть, какой должен быть предмет, а затем подделать сообщение Алисы. электронная почта, используя поддельный сайт. После этого система увидит, что все в порядке, поскольку похоже, что письмо пришло от Алисы.

Пример подмены сайта: https://emkei.cz/

...