javascript - 有什么方法可以获取单击 Outlook 链接的人的电子邮件地址
问题描述
我开发了一个应用程序,其中所有组织过程都将在线处理。有些流程是手动运行的,需要时间,现在将在线批准或不批准。
假设有一份文件将被批准HR ---> ADMIN ---> CEO.
现在,当有人发起请求应用程序时,会向 HR 经理发送两个链接,即批准或不批准,HR 可以通过单击这些链接执行他们的操作。
如果人力资源经理将此链接发送给其他人会发生什么,所以,该人也可以批准或不批准该过程,尽管他不是合适的人。
我可以通过在这两个链接上实施身份验证过程来阻止它,而不是每个权限都必须登录应用程序。我不想要。
有什么方法可以让我选择单击该链接的人的电子邮件 ID,以便我可以比较后端的电子邮件地址?
解决方案
如我所见,您有 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/
推荐阅读
- javascript - Angular 指令 ngIf 未按预期工作
- electron - 在 Windows 上安装更新时 Electron 自动更新失败
- iis - 没有为 aspx 扩展显示 404 自定义错误
- html - 创建一个下载链接,用户输入放置在链接中间
- c# - 向下转换列表
反对对象实际上是什么 - sql - 如何将值存储在从字符串中拆分出来的变量中?
- c++ - 你如何从输入文件中读取字符并将它们存储到向量中?
- vuetify.js - Vuetify:更新网格大小时添加动画
- javascript - 通过 void 函数递增由 new Number() 声明的数字
- java - Can't connect to Cassandra - Guava compatibility issue in Cassandra Datastax Driver 3.6