问题描述
我们最近完成了笔测试,并且报告返回时涉及跨站点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劫持
- 可能的解决方案是在过滤器中检查来源。
- 内容安全策略是否可以:connect-src'self'或HTTP Server缓解该问题?
- 在JSF /套接字中,WebSocket只是服务器到客户端,而不是双向的。然后可以将此问题视为误报吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)