安全撤消退出的方法

时间:2018-05-09 15:44:02

标签: email web-applications privacy

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

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

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

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

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

但是,人们似乎删除了这些邮件,我们收到了他们想要的几个请求。

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

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

我特别关注可靠和/或官方来源的链接/参考。谢谢。

1 个答案:

答案 0 :(得分:0)

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