通过https发送敏感数据的安全性如何?

时间:2008-10-10 10:41:43

标签: security ssl query-string

SSL是否足够安全,可以在查询字符串中使用敏感数据(如密码)? 是否有任何额外的选项可以实施?

10 个答案:

答案 0 :(得分:48)

SSL提供安全的传输级安全性。客户端和服务器之间的任何人都不应该能够读取信息。

你应该改变你在查询字符串中编写敏感数据的想法。它将显示在浏览器的历史记录中,并在浏览器的地址栏和服务器上的日志中可见。请参阅此文章:How Secure Are Query Strings Over HTTPS?

如果使用查询字符串是您唯一的选择(我对此表示怀疑),这里有一篇有趣的文章about securing query strings

答案 1 :(得分:5)

SSL是安全的,但请记住,如果有足够的时间和资源,任何加密都可能被破坏。鉴于您不知道哪些数据包包含密码而哪些数据包不包含密码,您必须解密所有加密流量才能找到正确的流量。这在一般情况下是难以处理的。

但是,登录表单需要输入[type = text]才能输入。它需要工作来“解包”这个并使用查询字符串将请求转换为HTTP GET请求,而不是使用表单参数中的数据的POST。我无法想象为什么有人会这样做。一旦用户提供了密码(并且用户通过了身份验证),请使用身份验证而不是保留密码。如果您需要保留密码,请进行模拟,例如,保持服务器端,最好是安全字符串。如果您正在尝试进行单点登录(为许多站点输入一次我的ID /密码),则使用某种中央身份验证服务(CAS) - OpenID,WindowsLive - 或实现您自己的。

密码穿过电线的次数越少越好。

而且,总会有一个浏览器位置栏需要考虑哪个会争论你需要加密和编码你在查询字符串中放入的任何敏感数据,如前所述。

答案 2 :(得分:2)

查询字符串中的敏感数据是一个坏主意,随便的路人可以看到查询字符串,并且有诱惑书签哪个真的不安全。

SSL是非常安全的,如果你做网上银行并且你相信它,那么SSL对你来说也足够好了。

答案 3 :(得分:2)

同意SSL是安全* ish和查询字符串问题

请记住SSL存在限制 -

确保证书已通过root认证。

有些Windows 2000机器需要有一个sp应用128位ssl才能工作,如果不存在那么它会转到40bit或者doenst load(如果我没记错的话)

某些软件防火墙(如ISA) - 您在其中发布安全网站和证书 - 就像中间人一样。

保护到ISA然后保护到LAN。但是这里的重要因素是“那么”因为ISA会记录然后记录是一个问题,因为查询字符串和帖子上的密码可以看到 - 这意味着任何人(管理员)都可以看到...

因此,请使用您的语言查找安全哈希算法,以便简单地对密码进行哈希处理。

答案 4 :(得分:2)

没有“足够安全”,安全性不是bool属性为false或true的静态内容。

SSL很好,但它取决于服务器端私钥的安全性,密钥的位数,使用的算法,使用的证书的可靠程度等等。

但是如果您使用SSL,至少所有传输的数据都是加密的(目标IP除外,因为它用于路由您的包)。

您应该考虑的另一点是 - 如果您在浏览器中手动输入密码查询字符串,它可能会在您的本地浏览器缓存中(在完全未加密的本地文件中)。所以最好使用POST而不是GET传输机制。

如果你真的对安全感兴趣,我推荐更多关于该主题的研究,因为大多数情况下算法不是安全性最弱的一点。

答案 5 :(得分:1)

是的,它足够安全。虽然我同意它通常不是一个好主意,无论如何在查询字符串中有这样的东西,如果它不是将在地址栏中显示的查询字符串,那就ok了。如果它显示在地址栏中,您显然会失去一定程度的安全性(人们走路等)

答案 6 :(得分:1)

答案 7 :(得分:0)

你永远不应该使用查询字符串发送任何关键敏感的内容!

答案 8 :(得分:0)

不应该发送哈希密码吗? - 如果我错了,请不要担心。

SSL几乎是您可以获得的最高安全性。

答案 9 :(得分:0)

自签名证书是由您自己创建和签名的SSL证书。这意味着您不需要第三方证书颁发机构(CA)来签署您的证书,这意味着浏览器默认会发出警告,因为自签名证书不能可靠(您的浏览器有一个受信任的CA列表)验证证书的签名者是否与证书完全相同。

考虑“代表”某个基于Redmond的软件公司创建SSL证书的情况。现在,如果您的HTTP服务器将您自签名的证书提供给客户端,则用户代理将警告该证书可能实际上不是它所声称的证书。证书颁发机构将通过文书工作验证真实的,实际的死树类型 - 请求签名的一方的身份,因此它是可信的。

希望这有帮助。