【问题标题】:Is there any way to get the email address of the one who clicked the link on outlook有什么方法可以获取单击outlook链接的人的电子邮件地址
【发布时间】:2019-06-05 01:14:52
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 如果有可能,那将是一个安全/隐私问题,不是吗?
  • 那么,不存在这样的东西吗? + 你知道 oracle 如何处理审批流程吗?他们也会发生同样的事情吗?

标签: javascript asp.net-mvc outlook office365 mailkit


【解决方案1】:

在我看来,您有 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/

【讨论】:

  • 谢谢!你解释得很好。
  • 嗨,Ettienne,我可以使用生物认证吗?
  • 这应该与选项 1 或 2 一起使用,以确认正确的用户正在批准或拒绝,但它不适用于选项 3
  • 我可以让他们扫描并离开,而不是写密码。 ?你有任何关于相同的教程吗?我可以使用任何扫描仪来扫描指纹(笔记本电脑或手机扫描仪)
  • 应该可以使用某种形式的生物特征认证来代替密码,但不幸的是我没有关于实现这个的教程
猜你喜欢
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多