我正在设计一个 REST Api,我们正在尝试决定如何进行加密。我们目前对所有请求/响应使用 https,但是各种日志(dns、浏览器……)将记录纯文本 url。当我们在 URL 中发送敏感数据时,这会引发一个问题,例如“www.mysite.com/user/credit-card-number/”。有没有办法利用 SSL/TLS 公钥/私钥来加密路径参数?例如,“www.mysite.com/user/credit-card-number/”变成了“www.mysite.com/encryptedstring”。
问问题
5412 次
2 回答
2
我强烈建议您不要将敏感数据放在 URL 中。如果您需要识别某些东西,您至少可以使用随机生成的 String/UUID/token/whatever 映射到正在识别的任何内容。
处理手动加密/解密将取决于您使用的语言/框架。例如,如果您使用的是 Java,那么在 JSSE 上进行一些谷歌搜索,这是 Java 的 SSL/TLS 框架。
如果您正在寻找自动为您进行加密/解密的东西,我认为这也取决于您使用的框架。
于 2012-07-10T22:32:45.010 回答
0
如果我理解正确,您是在询问 url 是否通过 SSL/TLS 通道加密。正如这个 SO question指出的那样,答案是肯定的。通过 TLS,客户端和服务器之间的所有内容都被加密,除了目标服务器的 IP 地址和端口。(这也包括http 标头。)
编辑:再次阅读后,我发现您有兴趣停止正在记录的 URL。我很确定这样做的唯一方法是更改服务器上的 url。帮助不大,但我的建议是不要将 cc 号码放在 url 中或使用某种派生密钥。
于 2012-07-10T22:42:12.970 回答