【问题标题】:Secure way to undo an Opt-Out撤消选择退出的安全方法
【发布时间】:2018-08-19 04:11:56
【问题描述】:

我们的 WebApp 允许会员向其他会员和非会员发送电子邮件以进行协作。因为我不想向任何人发送垃圾邮件,所以给非会员的每封邮件都包含一个链接,用于选择退出其他邮件。 (会员可以从应用程序内管理他们的邮件首选项)。

我想尊重退出请求,而不在我们的系统中存储个人身份信息,例如电子邮件地址,这就是我选择基于哈希的实现的原因。在发送电子邮件之前,会再次检查收件人的退出列表。

我的退出表由电子邮件地址的哈希值和撤消令牌组成:

 hash(lowercase($email)), hash($undo_token)

如果用户改变主意,撤消令牌会连同选择退出的确认一起发送给用户。需要此令牌才能从选择退出表中删除条目。

但是,人们似乎删除了这些邮件,我们收到了一些他们想要重新进入的请求。

什么是撤消选择退出的安全、难以滥用和自动化的方式?

该解决方案不应允许一个人选择加入其他人。我也不想将电子邮件发送到我的退出列表中的地址,而不能确定是它们。

我特别在寻找可靠和/或官方来源的链接/参考。谢谢你。

【问题讨论】:

    标签: email web-applications privacy


    【解决方案1】:

    对不起,我没有任何可靠的消息来源,但这只是我的想法。我看到一些退订链接看起来像http://some-email-service.com?action=OptOut&secretToken=3648789036219699210blahblahblah。他们使用像 action=OptOut 这样的东西作为 GET 参数传递。如果您也使用一些类似的方法来取消订阅用户,为什么不直接使用action=UndoOptOut 来反转操作呢?此外,如果您发送的 OptOut 确认邮件被用户删除,那么除了用户再次明确订阅之外,没有其他方法可以撤消。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-03
      • 2015-08-01
      • 2017-10-28
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多