我需要能够向用户发送包含加密值的链接,该加密值用于在用户访问链接时对用户进行身份验证。
当前进程使用salt和大约40个字符的唯一哈希值,然后对其进行加密和base64编码,以便可以通过电子邮件安全地传输,理论上可以通过URL安全地返回。
然而,由于这是我第一次尝试做这样的事情,我没有考虑加密值中斜杠的影响。当我从URL中提取它时,这会导致值被截断,当我尝试解密时,这显然是行不通的。
这一般如何实现?总是赞赏教程等的链接。
答案 0 :(得分:1)
我认为你的方法总体上是好的,实际上它可能已被认为是矫枉过正。对于网址中的斜杠(以及可能的其他问题字符)问题,只需确保您在验证令牌上使用urlencode()
(然后在验证页中随后urldecode()
)。
答案 1 :(得分:1)
虽然您不应该在不需要身份验证的页面中包含敏感数据,但是有一个简单的解决方案可以解决您的问题。在发送哈希之前,使用urlenconde
函数使其安全。然后在处理之前将其传递给urldecode
。