我有一个由laravel应用程序提供支持的时事通讯。它允许订户选择一个区域并设置一些过滤器来接收新房屋的邮件通知。
要以简单的方式为用户解决这个问题,我不想使用密码和使用名称等的长注册过程。相反,您只是收到一封电子邮件,在该电子邮件中有一个带有秘密令牌的编辑链接:
https://myapp.com/subscribers/42/edit?token=gwoi6n4ginagrpoargp4ar5gp14a
这会被视为一种安全的方法吗? 当用户点击该链接时,它是通过HTTPS进行加密的,但它仍会显示在当前的浏览器历史记录中。
我会因为这样做而受到抨击吗?如果有的话,有哪些方法可以改善它?
答案 0 :(得分:1)
在ssl通信中使用加密数据是的,这是安全的。但在我看来有一些提议:
1 - 从地址中删除令牌字。
2-此链接不应直接显示用户编辑页面。而是将参数发送到控制器,控制器将用户重定向到具有干净链接的新页面。只需在页面中保存令牌即可授权您的用户。
3-为什么不生产更长(更长一点!)的代币?
4-为了更安全,每个链接都应该有一个到期时间。每个简报邮件都会发送一个新的链接。