계: Encapsulation

캡슐화는 강력한 경계를 그리는 것입니다. 웹 브라우저에서는 사용자의 모바일 코드가 다른 모바일 코드에 의해 오용되지 않도록 하는 것을 의미합니다. 서버에서는 검증된 데이터와 검증되지 않은 데이터, 한 사용자의 데이터와 다른 사용자의 데이터, 데이터 사용자가 볼 수 있는 데이터와 볼 수 없는 데이터 간의 차별화를 의미할 수 있습니다.

Cross-Site WebSocket Hijacking

Abstract
서버가 도메인 간 요청을 허용하면서 요청의 출처를 확인하지 못해 공격자는 이러한 도메인 간 요청을 사용하여 양방향 WebSocket 연결을 하이재킹(hijacking)할 수 있습니다.
Explanation
Cross-Site WebSocket 하이재킹(hijacking)은 사용자가 속아서 악성 사이트를 방문할 때 이 사이트에서 합법적인 백엔드 서버와의 WebSocket 연결이 설정되면서 발생합니다. 서버에 WebSocket 프로토콜의 업그레이드를 요청할 때 사용되는 초기 HTTP 요청이 일반 HTTP 요청이기 때문에 브라우저가 세션 쿠키를 포함하여 대상 도메인에 바인딩된 모든 쿠키를 전송합니다. 서버가 Origin 헤더를 확인하지 못하면 모든 악성 사이트가 사용자를 가장하여 사용자 모르게 양방향 WebSocket 연결을 설정할 수 있게 됩니다.
References
[1] Christian Schneider Cross-Site WebSocket Hijacking
desc.semantic.dotnet.cross_site_websocket_hijacking
Abstract
서버가 도메인 간 요청을 허용하면서 요청의 출처를 확인하지 못하면 공격자는 이러한 도메인 간 요청을 사용하여 양방향 WebSocket 연결을 하이재킹할 수 있습니다.
Explanation
Cross-Site WebSocket 하이재킹(hijacking)은 사용자가 속아서 악성 사이트를 방문할 때 이 사이트에서 합법적인 백엔드 서버와의 WebSocket 연결이 설정되면서 발생합니다. 서버에 WebSocket 프로토콜의 업그레이드를 요청할 때 사용되는 초기 HTTP 요청이 일반 HTTP 요청이기 때문에 브라우저가 세션 쿠키를 포함하여 대상 도메인에 바인딩된 모든 쿠키를 전송합니다. 서버가 Origin 헤더를 확인하지 못하면 모든 악성 사이트가 사용자를 가장하여 사용자 모르게 양방향 WebSocket 연결을 설정할 수 있게 됩니다.
References
[1] Christian Schneider Cross-Site WebSocket Hijacking
desc.semantic.java.cross_site_websocket_hijacking