如果您使用HTTPS,您的URL参数是否可以安全地嗅探?

时间:2009-05-21 17:00:52

标签: security apache url https

假设我设置了一个简单的php web服务器,其中包含一个可以通过HTTPS访问的页面。该网址包含简单的参数,例如https://www.example.com/test?abc=123

在这种情况下,这里的参数对于嗅探数据包的人来说是否安全?如果服务器不使用任何SSL证书,那会是真的吗?

7 个答案:

答案 0 :(得分:69)

是的,您的网址可以安全地嗅探;但是,一个容易被忽视的漏洞是,如果您的页面引用了任何第三方资源,例如Google Analytics,添加任何内容,那么您的整个网址将被发送给参与者中的第三方。如果它真的很敏感,它不属于查询字符串。

至于问题的第二部分,如果服务器上没有证书,则无法使用SSL。

答案 1 :(得分:54)

http://answers.google.com/answers/threadview/id/758002.html

  

HTTPS建立基础SSL   任何HTTP数据之前的连接   转移。这确保了所有URL   数据(主机名除外)   用来建立   连接)仅在其中进行   这个加密的连接,是   免受中间人的影响   攻击的方式与任何HTTPS相同   数据是。

     

一个中的所有HTTP级事务   HTTPS连接在其中进行   已建立的SSL会话,没有   查询数据在传输之前传输   建立安全连接。

     

从外面看唯一的数据   世界上可见的是主机名   和你要连接的端口。   其他一切都只是一个流   使用a加密的二进制数据   私钥仅在您之间共享   和服务器。

     

在示例中,您提供了   浏览器会这样做:

     
      
  1. 导出   主机名(和端口,如果存在)   来自URL。
  2.   
  3. 连接主机。
  4.   
  5. 检查证书(必须'签名'   由一个已知​​的权威机构,具体应用   纠正IP地址和端口,并且   当前)。
  6.   
  7. 浏览器和服务器   交换密码数据和   浏览器收到私钥。
  8.   
  9. 的   发出HTTP请求,并使用加密   建立密码学。
  10.   
  11. 收到HTTP响应。也加密了。
  12.         

    HTTP是'应用层'   协议。它是在最重要的   安全层。根据SSL   规范,由Netscape制定,   它决定了没有应用层   数据可以传输直到安全   建立连接 - 如   在以下段落中概述:

         

    “此时,更改密码规范   消息由客户端发送,并且   客户端复制挂起的密码规范   进入当前的密码规范。该   然后客户端立即发送   在新的下完成了消息   算法,密钥和秘密。在   响应,服务器将自己发送   更改密码规范消息,转移   等待当前的密码   Spec,并发送完成的消息   根据新的密码规范。在这   点,握手完成了   客户端和服务器可能会开始   交换应用层数据。“   http://wp.netscape.com/eng/ssl3/draft302.txt

         

    是的。 网址中包含的数据   查询HTTPS连接是   加密即可。但是 非常差   练习包括这样的敏感   数据作为'GET'中的密码   请求。虽然它不可能   拦截后,将记录数据   在明文服务器日志上   接收HTTPS服务器,相当   也可能在浏览器历史记录中。它   可能也可用于浏览器   插件甚至可能是其他插件   客户端计算机上的应用程序   最多可以是HTTPS URL   合理地允许包括一个   会话ID或类似的不可重用   变量。它永远不应该包含   静态身份验证令牌。

         

    HTTP连接概念最多   在这里清楚地解释   http://www.ourshop.com/resources/ssl_step1.html

答案 2 :(得分:7)

请求的URI(/ test?abc = 123)作为HTTP请求标头的一部分发送到Web服务器,因此被加密。

但是,URL可能会以其他方式泄露,通常是网页浏览器工具栏,书签和发送给朋友的链接。根据您发送的数据的上下文/敏感度,发布数据可能更合适。

我认为HTTPS连接需要SSL证书,如果您不想购买,也需要自行生成证书。

希望有所帮助!

答案 3 :(得分:5)

取决于您的安全含义

SSL加密整个HTTP请求/响应,因此GET部分中的URL将被加密。这不会阻止MITM攻击和SSL会话本身完整性的破坏。如果使用非权威证书,则可以使潜在的攻击向量更简单。

Are REST request headers encrypted by SSL?

是一个类似的问题。

答案 4 :(得分:3)

url:s将存储在服务器日志和浏览器历史记录中,因此即使它们不能被嗅探,也远非安全。

答案 5 :(得分:1)

在线上,是的。在终点(浏览器和服务器)不一定。 SSL / TLS为transport layer security。它将加密浏览器和服务器之间的流量。浏览器端可以查看数据(例如BHO)。一旦它到达服务器端,它当然可供接收者使用,并且只有他对待它时才安全。如果数据需要安全地移动到初始交换之外并且不受客户端的窥探,您还应该查看message layer security

答案 6 :(得分:1)

SSL / TSL是传输层安全性,是的,可以使用BHO(如@JP编写)或任何添加,但也可以使用“浏览器外”HTTP嗅探器来选择数据。他们读取winsock32和应用程序之间的消息。加密发生在winsock32而不是浏览器中。

看一下(这部分是从IEinspector的页面中删除的): IEInspector HTTP Analyzer是一个非常方便的工具,可让您实时监控,跟踪,调试和分析HTTP / HTTPS 流量。