【发布时间】:2010-11-17 11:24:34
【问题描述】:
我想在我们的电子邮件通讯中自定义“取消订阅”链接,以便他们只需单击一下即可删除收件人。现在,他们只需指向一个通用页面,用户必须在该页面输入他们的电子邮件地址并选择他们想要取消订阅的时事通讯。
看起来这应该很简单,即只需将电子邮件地址和时事通讯 ID 作为 url 参数包含在内。但是当我查看我订阅的列表中的示例时,许多示例不包含可识别的地址,并且大多数似乎在参数中使用看起来像 guid 和/或散列值的东西。由此,我猜我应该对一些信息进行散列或以其他方式编码,以防止恶意滥用退订表单。
所以我的问题实际上是关于最佳实践,而不是重新发明轮子。是否有处理此类功能的标准方法?更具体地说,是否有理由不将收件人的电子邮件地址作为 url 的一部分?这似乎很简单,感觉就像我忽略了一些东西。
【问题讨论】:
-
因为真的没有真正的答案,我只是评论一下:除非你有一个查找表来查找用户 ID 的散列,否则它不可能是真正的散列。我所做的是加密用户 id,这样当我取回它时,我可以解密它并取消订阅用户。
-
在 URL 中包含电子邮件可能会起作用,除非您不希望人们取消订阅其他人的电子邮件地址,加密电子邮件将起作用,JWT 也将起作用,因为您无法修改内容。