gpt4 book ai didi

java - 验证 'confirm' 电子邮件链接的防篡改方法以及预防篡改措施?

转载 作者:行者123 更新时间:2023-12-02 03:57:30 26 4
gpt4 key购买 nike

背景故事:我的网站上运行着一个电子请愿类型的服务,我通过电子邮件向人们发送一个链接,他们可以在其中“同意”请愿书。此链接仅包含发送者的“petitionID”和“用户名”。

这些信息并不是特别敏感,但我仍然要求它是防篡改的,因为我希望他们能够在不登录或在数据库中存储值的情况下接受。

我想到使用Java的String.hashCode()函数。

也许 URL 为:用户名、PetitionId,然后是哈希

www.website.com/accept.jsp?user='username'&id='petid'&token='1039678106'

token 可以由用户名 + id(来自链接)+ datePetitionStarted(如未在网址中公开的盐)组成,如下所示:

String test = "mike.Who@petitionwebsite.com+1524+09/02/2016";
System.out.println(test.hashCode());

这会给我一个哈希值“1039678106”,这意味着服务器端,我可以获取 ID 参数、该人的用户名并使用 datePetitionStarted,获取哈希码并比较它们。

您认为这是防止篡改的有效方法吗?

我真的很想要一种接受请愿的 token 类型的方法,所以如果有人有任何其他想法那就太棒了。

谢谢

迈克

最佳答案

这就是我所做的(实际上是防篡改的)。我不使用java脚本,因为用户无论如何都可以禁用它。我只需创建一个 UUID(存储在用户详细信息旁边的数据库中),然后创建一个在注册过程中通过电子邮件发送的链接。

http://my_domain_name/Activate?key=6faeecf5-9ab3-46f4-9785-321a5bbe2ace

当用户单击上面的链接时,服务器端代码会检查该 key 是否确实存在于数据库中,在这种情况下,它会激活用户帐户。

关于java - 验证 'confirm' 电子邮件链接的防篡改方法以及预防篡改措施?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35290070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com