如果连接是通过 HTTPS 建立的,那么 URL 中包含的数据是否可以视为安全?例如,如果用户点击电子邮件中指向https://mysite.com?mysecretstring=1234攻击者是否有可能从 URL 中获取“mysecretstring”?
答案1
整个 HTTP 请求(和响应)都经过加密,包括 URL。
但是,攻击者确实有一种方法可以获取完整的 URL:通过 Referer 标头。如果有任何外部文件(Javscript、CSS 等)未通过 HTTPS,则可以在 Referer 标头中嗅探完整的 URL。如果用户单击页面中指向 HTTP(无 SSL)页面的链接,情况也是如此。
此外,DNS 请求未加密,因此攻击者可能知道用户将访问 mysite.com。
答案2
不,他们可以看到连接,即 mysite.com,但看不到 ?mysecretstring=1234,https 是服务器到服务器的
答案3
他们需要有加密密钥。理论上这是不可能的,但任何好的攻击都可能。这就是 SSL 的全部目的,即加密发送到服务器和从服务器发送的所有数据,以防止被嗅探。
答案4
只有当他们能够通过某种欺骗手段嗅探 https 身份验证时