내 응용 프로그램의 프로세스 간 통신에 WebSocket을 사용하고 싶습니다 (Daemon <-> WebGUI 및 Daemon <-> FatClient 등). 테스트 중에 websocket.org ( http://www.websocket.org/echo.html ) 의 JavaScript WebSocket 클라이언트를 통해 로컬에서 실행중인 웹 소켓 서버 (ws : // localhost : 1234)에 연결을 시도했습니다 .
내 질문은 다음과 같습니다.
왜 이것이 가능합니까? 브라우저에 구현 된 출처 간 정책이 없습니까 (여기 : Linux의 FF29)?
websocket.org가 악한 경우 로컬 WS 서버와 통신하고 localhost에서 수신하는 모든 메시지를 다른 서버로 리디렉션 할 수 있기 때문에 묻습니다.
로컬 WebSocket 서버 브라우저 이블 웹 서버 ws : // localhost : 1234 (http : //evil.tld) | | | | | ------ [GET /] ---------> | | | <----- [HTML + EvilJS] ---- | | <------ [ws : // .. 연결] ---- | | | <---- [일부 커뮤니케이션]-> | | | | ---- [사악한 포워드] ----> | | | |
전체 사용 사례를 테스트하지는 않았지만 websocket.org에서 제공하는 JS에서 ws : // localhost에 연결하는 것은 확실히 작동합니다.