【问题标题】:how can I ensure that the email address I sent an invitation to is the one responding.?如何确保我发送邀请的电子邮件地址是回复的电子邮件地址?
【发布时间】:2018-11-21 12:31:57
【问题描述】:

因此,我向电子邮件地址发送邀请,以便该人单击 a 进行回复。他们可以单击 href 或将其剪切并粘贴到浏览器中。我想确保只有我发送邮件的原始人是回复的人。所以不要转发邀请或分享链接。我知道我可以将目标电子邮件地址作为返回参数放在 href 中,但这可以被操纵。是否有一种安全的方法可以将目标电子邮件地址存储在要返回的链接中? 编辑: 所以我知道我可以在对方接受邀请并注册后发送一封确认电子邮件。我还可以保存原始电子邮件地址并强制受邀者使用该地址进行注册,然后发送验证电子邮件,但这一切似乎都非常复杂,是否有更有效的方法来做到这一点?

【问题讨论】:

  • 您能详细解释一下您要防范的威胁吗?您能否提供有关注册过程和您要解决的问题的更多详细信息?没有确定的方法可以知道登录的人是否真的是收到电子邮件的用户,但这实际上并不重要
  • @Yoni Jah 当我通过电子邮件发送邀请让您点击接受时,我不希望您通过在浏览器中粘贴链接来传递该链接以供其他人接受。所以我需要确保我发送给的人是回复的人
  • 我理解那部分。但是你为什么不让我把电子邮件转过来呢?你为什么在乎 ?你怕会发生什么?
  • @Yoni Jah.....LOL......这就像一个私人邀请,只有收到它的人才能参加......有点像回复
  • 好的,但如果用户点击电子邮件中的链接获得邀请,然后将实际邀请转给朋友,会发生什么?

标签: javascript http security https


【解决方案1】:

是的,有。

但是如何选择实施它取决于您。我个人会使用等 sha256 对电子邮件进行单向哈希处理。你可以说,基于数据库用户关注的事情。

  • 用户名
  • 电子邮件
  • 发送时间戳

所以你会有这样的字符串:

1234-user@domain.tld-1528789712

等等,将事物组合在一起然后散列取决于您。当然,不要只是按原样散列电子邮件 - 这样仍然很容易“操纵”。不要忘记将哈希值保存在数据库中,以便以后使用它,或者至少确保以后可以调用字符串中的内容。

因此,您可以在跟踪像素和 href 链接中包含类似的内容。 (我假设你也有一个跟踪像素,所以你可以跟踪他们何时打开电子邮件,但也许不要点击链接)

?source=ba1159374805fb1c3129afd4811c7be072bd9205d88237c8a957a1dfdf6dd00c

希望对您有所帮助。

【讨论】:

  • 感谢您的意见
【解决方案2】:

您可以确保回复邀请的人不会通过以下方式声称您已将邀请发送给其他人(当您发送邀请电子邮件时):

  1. 生成唯一令牌
  2. 将该令牌与电子邮件地址一起存储在您的数据库中
  3. 在接受邀请时使用该令牌来识别电子邮件地址

但是,正如您所说,电子邮件可以转发。如果您向 Alice 发送邀请,然后她将其转发给 Bob,那么没有什么可以阻止 Bob 代表 Alice 接受邀请。

您可以在电子邮件中警告 Alice,该链接是私密的,不应转发。

由于邀请将与 Alice 的电子邮件地址相关联,因此如果她忽略该建议,那么她仍然可以使用您实施的任何密码重置功能从 Bob 那里获得控制权。

您也可以向 Alice 发送“您接受了邀请。如果这是一个错误,请单击此处取消。”电子邮件。

【讨论】:

    猜你喜欢
    • 2017-07-23
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多