首页 > 解决方案 > 有什么方法可以获取单击 Outlook 链接的人的电子邮件地址

问题描述

我开发了一个应用程序,其中所有组织过程都将在线处理。有些流程是手动运行的,需要时间,现在将在线批准或不批准。

假设有一份文件将被批准HR ---> ADMIN ---> CEO.

现在,当有人发起请求应用程序时,会向 HR 经理发送两个链接,即批准或不批准,HR 可以通过单击这些链接执行他们的操作。

如果人力资源经理将此链接发送给其他人会发生什么,所以,该人也可以批准或不批准该过程,尽管他不是合适的人。

我可以通过在这两个链接上实施身份验证过程来阻止它,而不是每个权限都必须登录应用程序。我不想要。

有什么方法可以让我选择单击该链接的人的电子邮件 ID,以便我可以比较后端的电子邮件地址?

在此处输入图像描述

标签: javascriptasp.net-mvcoutlookoffice365mailkit

解决方案


如我所见,您有 3 种可能的方法来执行此操作:


1:实现认证过程

在我看来,这是最好的方法,因为您可以确定应该批准该过程的人就是实际批准它的人。

这种方法的缺点是用户必须登录,但您可以以他们很少需要登录的方式实现这一点,例如他们可以保持登录一个月或更长时间。


2:使用带有一次性令牌的链接

这基本上是您提到的骗局的方法,即有人可以转发电子邮件,然后其他人可以批准它。

在您的情况下,唯一可行的方法是从上到下强制执行,因为如果将此类电子邮件发送给其他人,管理层可能会受到处罚。但这很少是一个好的策略,并且很难执行。


3:通过回复电子邮件批准和不批准

我认为这种方法可能最接近您正在寻找的方法,但作为免责声明,我以前没有测试过这样的东西。

您可以设置链接,单击它们将打开一个新的邮件屏幕,其中填充了某些内容,例如,您可以填充主题和发送邮件的地址。

示例链接:<a href="mailto:approvedisapprove@system.com?Subject=Approve%20%5BIDNumberHere%5D&body=UniqueID%3D123456" target="_top">Approve</a>

然后在您创建的系统中,您必须监控该邮箱,然后解析收到的任何电子邮件,使用发件人地址来验证是否正确的人发送了电子邮件。

这种方法的一个重要注意事项是,电子邮件中的发件人地址很容易被欺骗,所以如果你想采用这种方法,我建议至少在电子邮件中添加某种随机令牌,以便验证后端。

即使使用唯一令牌,也存在另一种攻击媒介,尽管这需要一些工作。假设系统向 Alice 发送了一封邮件,因为她需要批准或不批准某事,她将邮件转发给 Bob。Bob 不能点击链接并按原样发送电子邮件,因为系统会看到它来自他的电子邮件地址,但 Bob 可以做的是点击链接查看主题应该是什么,然后欺骗 Alice 的使用欺骗网站发送电子邮件。然后系统会按顺序查看所有内容,因为它看起来像是来自 Alice 的电子邮件。

欺骗站点示例:https ://emkei.cz/


推荐阅读