我想给一个通讯订阅者改变他的信息的可能性。由于我们使用外部公司发送我们的通讯,我不能把一个关键的权利通讯(或不是没有太多的努力)。
我创建了一个表单,您可以在其中输入电子邮件,在检查它是否是订阅者之后,它会发送带有链接的电子邮件以更改您的信息。
该链接包含普通电子邮件和类似于sha1(email + "someString")的散列密钥,例如:
domain.com/change.php?mail=your@mail.com&key=356a192b7913b04c54574d18c28d46e6395428ab
在我的脚本中,我检查给定的电子邮件+ "someString“是否与密钥相同。
我知道链接将保持不变以更改您的信息,但我想问这样做是否存在安全问题,还是应该创建唯一的密钥并将它们存储在数据库中?
只会改变你的婚前协议,姓氏--也许我太费劲了。
发布于 2015-02-03 16:00:47
由于您想要更改用户信息,您可能已经有了一个数据库with (电子邮件、名字、姓氏),所以我也会在那里添加令牌(加上过期时间)。
如果你能以无状态的方式使用它(例如。确认订阅),这是一种可以接受的方法,但您应该使用HMAC,而不是连接值的散列。
https://security.stackexchange.com/questions/80719
复制相似问题