gpt4 book ai didi

security - 我应该如何为每个预订生成一个唯一链接,以便我的用户可以看到独立的电子邮件?

转载 作者:行者123 更新时间:2023-12-04 06:35:01 24 4
gpt4 key购买 nike

当我的网站用户进行预订时,会发送一封电子邮件确认。我被要求添加“查看此电子邮件时遇到问题?”链接到顶部的链接到网站上的电子邮件。

我不知道应该如何生成链接以便用户可以查看此电子邮件。

请注意,我使用的是第三方预订系统,该系统为我提供了一个确认代码,例如:12345BE913913哪里12345是属性(property)和BE总是 BE913913是次要号码。
我想知道我是否可以散列这个数字并将其作为链接?例如 sha1('12345BE913913')变成 070bae598f481351e24975d6509fc0a73cad9a17
然后电子邮件中的链接变成了类似 href="http://blah.com/email/view/070bae598f481351e24975d6509fc0a73cad9a17 的内容。

问题 #1:这是一种非常标准、安全的做法吗?

如果是这样,我还有另一个问题……我需要提取这些信息才能在我的 email/view 中生成电子邮件。 .网络服务只接受确认码,所以我必须提供原始的,12345BE913913到它。所以我不能简单地获取所有的确认码,将它们全部 sha1 并查看哪一个等于 070bae598f481351e24975d6509fc0a73cad9a17 .

问题#2:我唯一的选择是通过接受原始确认码的网络服务获取预订信息,创建一个存储所有确认码的本地数据库,然后对所有这些进行 SHA1 处理,看看它是否等于 070bae598f481351e24975d6509fc0a73cad9a17把它拉起来?使用电子邮件中的实际确认码是不安全的,是吗?

最佳答案

为什么不同时传递确认号(作为主键)和与之关联的 MAC(以防止人们猜测 URL。

URL生成伪代码:

$mac = HMAC_SHA1($server_secret, $confCode);
$url = "http://$baseURL?conf=$confCode&m=$mac";

电子邮件显示伪代码:
$mac = getParam("m");
$confCode = getParam("conf");
$expectedMac = HMAC_SHA1($server_secret, $confCode);
if($mac != $expectedMac) { # Or in real perl, ne instead of !=
return errorPage();
}
return email($confCode);

关于security - 我应该如何为每个预订生成一个唯一链接,以便我的用户可以看到独立的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4972010/

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