2012-08-01 15 views
31

Linodeボックスにポート8080をセットアップしたwebsocketサーバーがあります。 ChromeとOperaは正常に動作します。しかしFirefoxは操作が安全でないと不平を言う。Firefox Websocketセキュリティの問題

「操作は安全ではありません:コード18」

私は、ページがすべてがうまくているロードされる前に、Webコンソールで新しいのWebSocketオブジェクトを作成しよう。しかし、ページが読み込まれた後、何かがねじれている場合、私はもうオブジェクトを作成できません。添付のスクリーンショットを参照してください。 enter image description here

私は、どのような操作が安全でないか、またはこれを診断する方法を知りません。

+1

これは、localhostに接続している開発モードでうまく動作することに注意してください。 WebsocketサーバーはLinodeのインターネットに直接公開されています – bcardarella

+0

これはFirefoxの新しいバージョンですか?彼らはセキュリティ問題のためにいくつかのバージョンのWebソケットを無効にしました。 – Dreen

+0

@Dreenそれは最新ですが、スクリーンショットの上部に表示されているように、ページをロードする前に問題なくWebsocet接続を確立することができます – bcardarella

答えて

31

これを修正しました。アプリ自体はSSLの下にありますが、アクセスされているウェブソケットはアクセスしていません。 ChromeとOperaは気にしませんが、Firefoxは気にしません。よると:

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

これは知られており、バグとはみなされません。 Mozillaの応答:WONTFIX

ソリューションは、SSLおよび使用WSSの下でのWebSocketサーバーを置く://

+1

これを受け入れることができます。 – mac01021

+4

'SSLの下にwebsockeサーバを置いてwss://を使う方法についての情報を提供できますか?正確に何をするのか分かりません。 – Leeish

+0

@Leeish安全なwebsocketクライアントを作るには、 '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を報告しています。他のブラウザもWebSocketを再構築していますか? BTWはLinodeがwebsocketをサポートしていますか?迅速なGoogle検索で決定的な情報は得られません – laker

32

あなたは別の答えで指摘するように、HTTPSを:// WSへ://は、Firefoxのではデフォルトで許可されていません。

firefoxのabout:configに行き、network.websocket.allowInsecureFromHTTPSを切り替えると、SecurityErrorが取り除かれます。

+0

これはうまくいった!少なくとも、Firefoxの厄介な制限に対処するための回避策があります。 –

+4

@FaisalMushtaq:「厄介な制限」ではなく、実際にはセキュリティのベストプラクティスです。 – berkes