gpt4 book ai didi

javascript - 如何使此登录/重定向方法更安全

转载 作者:行者123 更新时间:2023-11-29 18:08:33 25 4
gpt4 key购买 nike

我有一个向用户发送电子邮件的应用程序,每封电子邮件都包含指向用户必须访问的页面的链接。

链接是唯一id+随机数的md5。

链接看起来像:www.domain.com/index.php?id_page=<the md5>

在索引页上我保存了 $_GET["id_page"]在 session 变量中,$_SESSION["id_page"]然后我将用户重定向到他必须看到的页面(只有当链接包含 id_page 时,用户才会被重定向到该页面)。

如何改进此方法并使其更安全?我如何保证用户进入指定给他们的页面 - 而不能进入任何其他页面?

最佳答案

您在这里关心的是时间问题,而不是安全问题 :)。如果您允许任何人猜测无限数量的 id_page 值,那么给定足够的时间,最终有人会偶然发现一个随机有效的 id_page 值。

你唯一真正的防御是增加你的散列的长度,导致它(平均)花费更多的时间发生在一个随机有效的 id_page 上(大约几个月或几年) ).这可以通过使用 sha256 或 sha512 而不是 md5 来完成。

另一种方法是将某人锁定一段时间,例如,如果他们连续 3 次猜错 id_page 值。这将大大减少他们在给定时间段内可以尝试的值的数量。

最后,如果用户在重定向时已经登录,那么您还可以将生成的哈希存储在数据库表中。这样你就可以将一个特定的散列映射到表中的一个且只有一个用户标识。如果用户试图访问他们在数据库中不对应的哈希页面,那么您可以将他们重定向到其他地方。

关于javascript - 如何使此登录/重定向方法更安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29485360/

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