首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何生成一个独特的链接,每次预订,以便我的用户可以看到一个独立的电子邮件?

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

Stack Overflow用户
提问于 2011-02-11 17:17:04
回答 3查看 292关注 0票数 2

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

我有困难,不知道我应该如何生成一个链接,以便用户可以查看这封电子邮件。

请注意,我使用的是第三方预订系统,它为我提供了一个确认代码,例如:12345BE913913,其中12345是属性,BE总是BE913913是次要号码。我想知道我能不能把这个号码编成链接?如sha1('12345BE913913'),转化为070bae598f481351e24975d6509fc0a73cad9a17

然后电子邮件中的链接就像href="http://blah.com/email/view/070bae598f481351e24975d6509fc0a73cad9a17一样

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

如果是这样的话,我还有一件事.为了在我的email/view中生成电子邮件,我需要输入这些信息。web服务只接受确认代码,所以我必须将原始代码12345BE913913提供给它。因此,我不能简单地获取所有的确认代码,sha1它们全部,看看哪一个等同于070bae598f481351e24975d6509fc0a73cad9a17

问题2:是我唯一的选择,可以通过接受原始确认代码的see服务获取预订信息,创建一个存储所有确认代码的本地数据库,然后获得所有的SHA1 1‘d,看看是否等同于070bae598f481351e24975d6509fc0a73cad9a17将其取出?在电子邮件中使用实际的确认代码是不安全的,是吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-11 18:50:58

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

URL生成伪码:

代码语言:javascript
复制
$mac = HMAC_SHA1($server_secret, $confCode);
$url = "http://$baseURL?conf=$confCode&m=$mac";

电子邮件显示伪码:

代码语言:javascript
复制
$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);
票数 1
EN

Stack Overflow用户

发布于 2011-02-11 17:41:21

如果您需要操作是可逆的,为什么使用SHA1?为什么不使用像Twofish这样的系统算法来加密它以生成URL呢?您可以使用您的密钥在服务器端解密它以恢复原始的确认代码,然后将确认代码发送到第三方预订系统。因为没有其他人拥有您的密钥,所以没有其他人能够恢复确认代码。

票数 1
EN

Stack Overflow用户

发布于 2011-02-11 17:41:44

对真正的标识符进行散列,并将散列作为表中的键存储到“反向查找”的原始值是一种常规方法。

然而,这并不是唯一的选择。你可以加密确认码。由于确认码是短的,而且(我推测)是唯一的,所以可以使用ECB模式和分组密码,这样就可以保持密码文本的短(16字节而不是SHA-1的20字节)。

欧洲央行的警告是,相同的确认代码总是产生相同的密码文本。最有可能的情况是,代码只在一封电子邮件中发送;但是,如果发送的邮件不止一次,攻击者将能够确定该电子邮件与同一确认代码有关(但他们无法确定确认代码本身)。

我不知道你所说的“安全”是什么意思。有人能用确认号码做什么?他们能使用哈希从你的网站获得确认号码吗?除非使用S/MIME (或PGP),否则电子邮件不是私有的;假设攻击者可以读取电子邮件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4972010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档