防范document.execCommand(“ClearAuthenticationCache”

2019-10-20 19:17发布

我们有一个使用JSESSIONID到客户端和服务器之间的管理会话状态J2EE应用程序(仅-cough- IE中运行)。 我们的一些客户使用第三方的Web应用程序( https://mdoffice.sentara.com/ ),其中客户端JavaScript的onload方法调用:

 document.execCommand("ClearAuthenticationCache");

这摔破我们JSESSIONID cookie的浏览器,从而使应用程序服务器,看看我们的IE客户端窗口后续请求视为无效或超时会话和用户被踢出。 我们的服务器是美洲国家组织/ OC4J,但我怀疑这一点,重要的:会发生同样的基本行为,如果我打上面的网址,同时登录到我的网上银行。

在试图研究这个,我发现,大多数人有兴趣在复制非IE浏览器的这种行为。 我感兴趣的是如何进行防范 。 我们确认会话cookie都具有域范围界定,但上面的命令似乎并没有兑现这一点。 我们有一个跛脚的变通,使我们推出IE与-noframemerging说法。 这是丑陋的,并且也结束了我们的逻辑,试图在客户端限制为单一登录搞乱。

我找不到MSDN上许多有用的,但这篇文章( http://blogs.msdn.com/b/ieinternals/archive/2010/04/05/understanding-browser-session-lifetime.aspx )不说清楚那上面的命令“......清除会话cookie ...在当前会话中运行的所有网站”。

有谁知道任:

  1. 显然,最好:保护我们珍贵的会话cookie从ClearAuthenticationCache的方法吗?
  2. 叶片的希望:不太积极的替代ClearAuthenticationCache,我们会告诉我们的客户传达给第三方? (当然,他们会与导致此问题的任何第三方这样做。目前,这仅仅是一个。)

谢谢你的帮助!

文章来源: Protect against 3rd party callers of document.execCommand(“ClearAuthenticationCache”)? Clears our session cookies