跨站点WebSocket劫持

问题描述

我们最近完成了笔测试,并且报告返回时涉及跨站点WebSocket劫持问题。报告的问题与一次场景有关,在这种情况下,我们使用o:socket在会话超时时自动注销用户

URL --omnifaces.push/sessionClose?5c4a1039-f22b-4c34-b97e-c676575a3f89



<o:socket channel="sessionClose" scope="session" onclose="sessionScopedSocketCloseListener" />
        <script>
        function sessionScopedSocketCloseListener(code) {
            console.log(code);
            if (code == 1000) {
                document.getElementById('autologout').click();
            }
        }
        </script>

描述说服务器无法验证HTTP升级请求中已通过身份验证的用户的Origin头,因此接受攻击者可以用来劫持双向WebSocket连接的跨域请求。这称为跨站点WebSocket劫持

  1. 可能的解决方案是在过滤器中检查来源。
  2. 内容安全策略是否可以:connect-src'self'或HTTP Server缓解该问题?
  3. 在JSF /套接字中,WebSocket只是服务器到客户端,而不是双向的。然后可以将此问题视为误报吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...