Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
减轻java中https请求的会话劫持_Java_Ssl_Tomcat_Https_Session Cookies - Fatal编程技术网

减轻java中https请求的会话劫持

减轻java中https请求的会话劫持,java,ssl,tomcat,https,session-cookies,Java,Ssl,Tomcat,Https,Session Cookies,我已经在tomcat context.xml中设置了useHttpOnly=true,并且正在使用server.xml连接器元素支持中使用java keytool生成的自签名证书来支持SSL,如下所示: context.xml <Context useHttpOnly="true"> <!-- other code --> </Context> server.xml <Connector port="80" protocol="HTTP/1.1"

我已经在tomcat context.xml中设置了
useHttpOnly=true
,并且正在使用server.xml连接器元素支持中使用java keytool生成的自签名证书来支持SSL,如下所示:

context.xml

<Context useHttpOnly="true">
<!-- other code -->
</Context>

server.xml

<Connector port="80" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
            maxThreads="150" scheme="https" secure="true"
            clientAuth="false" sslProtocol="TLS" 
            keystoreFile="my key file location"
            keystorePass="keystore password" />

重新启动服务器后,我已使用chrome dev工具确认更改已生效:

:

我想这实际上并不能使站点免受会话劫持,因为如果攻击者能够通过嗅探获得有效的会话ID。如果让用户使用已知会话ID对自己进行身份验证,然后利用所使用的会话ID劫持用户验证的会话。攻击者随后可以提供合法的web应用程序会话ID,并尝试让受害者的浏览器使用该ID

我已经使用burp套件测试了这一点,方法是嗅探一个用户(具有管理员角色)的会话ID,并将其用作具有另一个角色的用户的会话ID。服务器无法识别活动会话请求是来自原始设备还是来自非法使用会话的攻击者。我想这就是SSL的用武之地!浏览器不信任我的自签名证书,这让我想知道如果我使用其他SSL会有多大的不同。它真的比自签名证书更安全吗?或者,从浏览器的角度看,这仅仅是证书的可信度吗?服务器是否有办法检查请求是否来自经过身份验证的用户而不是劫持会话的攻击者

然后,攻击者可以提供合法的web应用程序会话ID,并试图让受害者的浏览器使用该ID

以上称为

要减轻成功登录后的会话固定,请临时存储用户信息,使当前会话无效,创建新会话,将用户信息复制到新会话

如果攻击者使用他生成的会话id,则该会话将不会是受害者的会话

然后,攻击者可以提供合法的web应用程序会话ID,并试图让受害者的浏览器使用该ID

以上称为

要减轻成功登录后的会话固定,请临时存储用户信息,使当前会话无效,创建新会话,将用户信息复制到新会话


如果攻击者使用他生成的会话id,那么该会话将不会是受害者的会话。

如果攻击者能够通过嗅探获取有效会话id,那么攻击者如何从加密通信中“嗅探”有效会话id?至于不信任您的自签名证书,问题是用户是否会信任您的站点;它对嗅探攻击没有额外的保护。顺便说一句,SSL更恰当地称为传输层安全性(Transport Layer Security,TLS)——它可以用于向任何TCP协议(不仅仅是HTTP)添加加密。你可以使用TLS做一些事情。“问题是用户是否会信任你的网站;它对嗅探攻击没有额外的保护”--是的,但除此之外,就证书而言有什么区别吗?“如果攻击者能够通过嗅探获取有效会话ID,那么攻击者如何“嗅探”加密流量中的有效会话ID”--我使用burp suite拦截了流量,并且能够获取请求中传输的所有数据。就证书而言,有何区别?没有,中间人攻击只有在最终用户无法验证证书的情况下才是可能的。通常的方法是使用签名证书。但如果攻击者还可以生成有效的签名证书,则是;你仍然容易受到中间人攻击。这并不是什么新鲜事。我想我已经理解了对有效证书的需要,而且似乎有效证书并不一定意味着攻击者不能破坏用户会话。有没有办法在服务器端检查请求是否被泄露?当然。客户端上的有效证书,服务器上的有效证书,执行双向验证。现在必须验证每个客户机。密码学文献相当不错,或者你可以不断向互联网上的陌生人解释数学。如果攻击者能够通过嗅探获取有效会话ID,那么攻击者如何从加密流量中“嗅探”有效会话ID?至于不信任您的自签名证书,问题是用户是否会信任您的站点;它对嗅探攻击没有额外的保护。顺便说一句,SSL更恰当地称为传输层安全性(Transport Layer Security,TLS)——它可以用于向任何TCP协议(不仅仅是HTTP)添加加密。你可以使用TLS做一些事情。“问题是用户是否会信任你的网站;它对嗅探攻击没有额外的保护”--是的,但除此之外,就证书而言有什么区别吗?“如果攻击者能够通过嗅探获取有效会话ID,那么攻击者如何“嗅探”加密流量中的有效会话ID”--我使用burp suite拦截了流量,并且能够获取请求中传输的所有数据。就证书而言,有何区别?没有,中间人攻击只有在最终用户无法验证证书的情况下才是可能的。通常的方法是使用签名证书。但如果攻击者还可以生成有效的签名证书,则是;你仍然容易受到中间人攻击。这并不是什么新鲜事。我想我已经理解了对有效证书的需要,而且似乎有效证书并不一定意味着攻击者不能破坏用户会话。有没有办法在服务器端检查请求是否被泄露?当然。有效证书