2012-08-01 2 views
31

Linode 상자에 포트 8080 설정의 websocket 서버가 있습니다. Chrome과 Opera는 잘 작동합니다. 그러나 파이어 폭스는 운영이 안전하지 않다는 불만을 토로한다.Firefox 웹 소켓 보안 문제

는 "작업은 안전하지 않습니다 : 코드 18"

I 페이지는 모든 것이 괜찮로드되기 전에 웹 콘솔에 새로운 웹 소켓 객체를 만들려고합니다. 그러나, 페이지가로드 된 후 뭔가가 뒤 틀릴 경우 더 이상 객체를 만들 수 없습니다. 첨부 된 스크린 샷을 참조하십시오. enter image description here

어떤 작업이 안전하지 않거나이를 진단하는 방법에 대해 알지 못합니다.

+1

로컬 호스트에 연결하는 개발 모드에서 제대로 작동합니다. Websocket 서버는 Linode에서 인터넷에 직접 노출됩니다. – bcardarella

+0

이것은 새로운 Firefox 버전입니까? 보안 문제로 인해 일부 버전의 웹 소켓이 비활성화되었습니다. – Dreen

+0

@Dreen 가장 최신이지만 화면 상단에서 볼 수 있듯이 페이지를로드하기 전에 문제없이 Websocet 연결을 설정할 수 있습니다. – bcardarella

답변

31

해결했습니다. 앱 자체는 SSL을 사용하지만 액세스되는 웹 소켓은 그렇지 않습니다. Chrome과 Opera는 상관하지 않지만 Firefox는 상관하지 않습니다. 에 따르면

https://bugzilla.mozilla.org/show_bug.cgi?id=303952

이 알려져 있고, 버그로 간주되지 않습니다. 모질라의 응답 :

솔루션을 고치지 않을 것 (wontfix) SSL에서 웹 소켓 서버를두고 WSS를 사용 : //

+1

당신은 이것을 받아 들일 수 있습니다. – mac01021

+4

'SSL로 websocke 서버를 설치하고 wss : //를 사용하는 방법에 대한 정보를 제공 할 수 있습니까? 정확히 무슨 뜻인지 모르겠습니다. – Leeish

+0

@Leeish 안전한 웹 소켓 클라이언트를 만들려면'wss : //'와 함께 URL을 지정하십시오.서버에서 SSL/TLS를 사용하려면 사용중인 websocket 서버의 설명서를 참조해야합니다. TLS가 지원되지 않을 수도 있습니다. – newprogrammer

1

이것은 제한된 정보를 바탕으로 한 직감이며, 아마도이 내용을 주석에 넣어야하지만, 아직 그렇게하기에는 충분한 평판 포인트가 없습니다.

로그를 보면 [object Websocket] (시간 17 : 46 : 36.683)의 수령에서부터 The connection to ws://..... (시간 17 : 47 : 00 : 952) 오류 메시지가 나타날 때까지 24 초가 지나가는 것처럼 보입니다. 서버가 시간 초과되어 websocket 연결을 닫을 수 있다고 생각하게 만듭니다. 잠재적 해결책을 찾으려면 this answer을보십시오.

+0

그렇다면 Chrome과 Opera가 왜 잘 작동합니까? – bcardarella

+0

좋은 점은 서버가 다른 사용자 에이전트에 다르게 응답하지 않는 한 서버 측 시간 초과가 아닐 가능성이 있습니다 ... – laker

+0

실제로 브라우저에 관계없이 동일한 시간 초과가 발생할 수는 있지만 Firefox 만 securityError를보고하고 있습니다. 다른 브라우저에서 웹 소켓을 다시 설정합니까? BTW는 Linode가 websocket을 지원합니까? 빠른 구글 검색은 결정적인 정보를 제공하지 않았다. – laker

32

다른 대답에 지적 된 바와 같이, HTTPS를 : // WS : //로는 파이어 폭스에서 기본적으로 허용되지 않습니다.

파이어 폭스의 about : config로 가서 network.websocket.allowInsecureFromHTTPS을 토글하면 SecurityError가 제거됩니다.

+0

그래, 이거 먹었어! 적어도 Firefox의 엄격한 제한 사항을 처리하기위한 해결 방법이 있습니다. –

+4

@FaisalMushtaq : "불쾌한 제한"이 아니라 실제로 보안상의 우수 사례입니다. – berkes