使用HTTPS防止中间人攻击

使用HTTPS防止中间人攻击,https,security,man-in-the-middle,Https,Security,Man In The Middle,我正在编写一个类似于omegle的小应用程序。我有一个用Java编写的http服务器和一个html文档客户端。主要的通信方式是通过http请求(长轮询) 我已经通过使用https协议实现了某种安全性,并且我为连接到服务器的每个客户端都有一个securityid。当客户端连接时,服务器会给它一个securityid,当客户端需要请求时,它必须始终发送回该securityid 我害怕这里的中间人攻击,你有什么建议可以保护我的应用程序免受这样的攻击吗? 请注意,此应用程序是出于理论目的而构建的,它永远

我正在编写一个类似于omegle的小应用程序。我有一个用Java编写的http服务器和一个html文档客户端。主要的通信方式是通过http请求(长轮询)

我已经通过使用https协议实现了某种安全性,并且我为连接到服务器的每个客户端都有一个securityid。当客户端连接时,服务器会给它一个securityid,当客户端需要请求时,它必须始终发送回该securityid

我害怕这里的中间人攻击,你有什么建议可以保护我的应用程序免受这样的攻击吗?
请注意,此应用程序是出于理论目的而构建的,它永远不会用于实际原因,因此您的解决方案不必一定实用。

HTTPS不仅可以进行加密,还可以对服务器进行身份验证。当客户端连接时,服务器会显示其域具有有效且可信任的证书。此证书不能简单地被中间人伪造或重放。

HTTPS不仅可以进行加密,还可以对服务器进行身份验证。当客户端连接时,服务器会显示其域具有有效且可信任的证书。此证书不能简单地被中间人伪造或重放。

简单地启用HTTPS是不够的,因为web带来了太多的复杂性

首先,确保在cookies上设置了安全标志,否则它们可能会被盗

确保用户仅通过在地址栏中键入
https://
访问站点也是一个好主意,这是确保使用有效证书进行https会话的唯一方法。当您键入
https://
时,浏览器将拒绝您访问该站点,除非服务器为
提供有效的证书

如果您只在前面键入
,而不键入https://的话,浏览器将不会关心会发生什么。这有两个含义,我可以从脑海中想到:

  • 攻击者重定向到具有类似名称的某个unicode域(即:外观相同但具有不同的二进制字符串,因此是不同的域),然后攻击者为该域提供有效的证书(因为他拥有该域),用户可能不会注意到这一点

  • 攻击者可以模拟服务器,但如果没有HTTPS,他将建立自己与真实服务器的安全连接,并成为您与服务器之间的明文代理,他现在可以捕获您的所有流量并执行任何他想要的操作,因为他拥有您的会话


  • 仅仅启用HTTPS是不够的,因为web带来了太多的复杂性

    首先,确保在cookies上设置了安全标志,否则它们可能会被盗

    确保用户仅通过在地址栏中键入
    https://
    访问站点也是一个好主意,这是确保使用有效证书进行https会话的唯一方法。当您键入
    https://
    时,浏览器将拒绝您访问该站点,除非服务器为
    提供有效的证书

    如果您只在前面键入
    ,而不键入https://的话,浏览器将不会关心会发生什么。这有两个含义,我可以从脑海中想到:

  • 攻击者重定向到具有类似名称的某个unicode域(即:外观相同但具有不同的二进制字符串,因此是不同的域),然后攻击者为该域提供有效的证书(因为他拥有该域),用户可能不会注意到这一点

  • 攻击者可以模拟服务器,但如果没有HTTPS,他将建立自己与真实服务器的安全连接,并成为您与服务器之间的明文代理,他现在可以捕获您的所有流量并执行任何他想要的操作,因为他拥有您的会话


  • 仅当客户端设置为验证证书是否正确时,此选项才为真?我想知道是否有任何数据表明,有多少%的客户端启用了此功能,例如,当人们编写客户端应用程序来使用API时。你见过有哪家公司记录得这么好,以帮助客户端应用程序正确验证证书?谢谢仅当客户端设置为验证证书是否正确时,此选项才为真?我想知道是否有任何数据表明,有多少%的客户端启用了此功能,例如,当人们编写客户端应用程序来使用API时。你见过有哪家公司记录得这么好,以帮助客户端应用程序正确验证证书?谢谢