|
|
1
6
思想:
|
|
|
2
4
你为什么不定期清理数据库(cron脚本)并删除所有24小时未激活的帐户呢? |
|
|
3
3
我以前也做过差不多的事。我只有两个建议,
对于最短的URL,您可以通过以下更改做得更好,
|
|
|
4
3
你的解决方案有一些问题。
首先,你没有设置密码的IV。在我看来,这暴露了Ruby OpenSSL包装器中的一个严重错误——在两者都执行之前,它不应该让你执行加密或解密
其次,更严重的是,你没有进行真实性检查。CBC模式的一个特性是,有权访问一条消息的攻击者可以修改它以创建第二条消息,其中第二条信息中的一个块完全由攻击者控制内容,代价是前一个块被完全混淆。(哦,请注意,CFB模式在这方面同样是一个问题)。
在这种情况下,这意味着我可以请求一个姓氏为AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA的帐户和我自己的电子邮件地址来接收有效的URL。然后,我可以,
不知道钥匙
,将电子邮件地址修改为
为了解决这个问题,你需要对数据计算一个HMAC,用只有服务器知道的秘密作为密钥,并将其作为URL的一部分发送。请注意,你需要加密的唯一原因是保护用户的密码,而不是它可能只是明文加上HMAC。我建议你只需将以下内容作为url发送:
…并让验证页面提示输入密码(似乎没有理由来回弹出密码)。 |
|
|
5
1
我将尝试描述一个可能奏效的设计。 先决条件:
设计:
流程:
请指出我遗漏的任何内容或任何改进。我很乐意相应地更新答案。 |
|
|
stack programming · 如何将损坏的文本恢复为阿拉伯语 2 年前 |
|
|
FoolishMortal · 无法显示从基64字符串解码的特定图像 2 年前 |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 2 年前 |
|
|
dax · 运行长度编码给出错误的结果 2 年前 |
|
Ben · 内存中的Python GZIP在现有文件上 2 年前 |
|
|
GoodCat · 如何将这64行缩短4个字符? 2 年前 |