2012-08-01 41 views
31

Linode kutusunda 8080 numaralı bağlantı noktasında bir websocket sunucumuz var. Chrome ve Opera gayet iyi çalışıyor. Ancak Firefox, operasyonun güvensiz olduğunu düşünüyor.Firefox Websocket güvenlik sorunu

"operasyonu güvensiz: Kod 18"

ben sayfa herşey yolunda yüklenmeden önce web konsolunda yeni WebSocket nesnesi oluşturmak için deneyin. Ancak, sayfa yüklendikten sonra bir şey vidalanırsa artık nesneyi oluşturamıyorum. Ekli ekrana bakın. enter image description here

İşlemin ne denli güvensiz olduğu ve hatta bunun nasıl teşhis edileceği hakkında hiçbir fikrim yok.

+1

Bunun, localhost'a bağlanan geliştirme modunda iyi çalıştığını not etmeliyim. Websocket sunucusu doğrudan Linode – bcardarella

+0

'da internete maruz kalıyor Bu yeni bir Firefox sürümü mü? Güvenlik sorunları nedeniyle birkaç sürüm için Websockets'ı devre dışı bıraktılar. – Dreen

+0

@Dreen en son ancak ekranın üst kısmında gördüğünüz gibi sayfa yüklemeden önce sorun olmadan bir WebSoccket bağlantısı kurmak mümkün – bcardarella

cevap

31

Bunu düzeltdim. Uygulamanın kendisi SSL altındadır, ancak erişilebilen websocket değildir. Chrome ve Opera umrumda değil ama Firefox var. göre:

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

Bu bilinir ve bir hata olarak kabul edilmez. Mozilla'nın cevabı:,

Çözüm wontfix SSL altında WebSocket sunucusu koymak ve wss kullanın: //

+1

Bunu kabul edebilirsin. – mac01021

+4

Websocke sunucusunu SSL'ye nasıl koyacağınız ve wss: // işlevini nasıl kullanacağınız hakkında bilgi verebilir misiniz? Bunu yapmak için tam olarak ne demek istediğinden emin değilim. – Leeish

+0

@Leeish Güvenli bir websocket istemcisi kullanmak için, url'yi 'wss: //' ile belirtmeniz yeterlidir.Sunucuda SSL/TLS'yi etkinleştirmek için, kullandığınız web sunucusu sunucusunun belgelerine başvurmanız gerekir. TLS'nin desteklenmemesi mümkündür. – newprogrammer

1

Bu, sınırlı bir bilgiye dayanan bir önsezdir ve muhtemelen bunu bir yoruma dahil etmeliyim, ancak bunu yapmak için yeterli itibara sahip değilim.

Günlüğünüze baktığımızda, The connection to ws://..... (zaman 17: 47: 00: 952) hata iletisini alana kadar 24 saniye (saat 17: 46: 36.683) alınmasından geçiyor gibi görünüyor. Uzun gecikme sunucunun zaman aşımına uğradığını ve websocket bağlantısını kapatabileceğine inanmamı sağlıyor. Olası bir çözüm için this answer'a bakın.

+0

Bu durumda, neden Chrome ve Opera sadece iyi çalışıyor? – bcardarella

+0

iyi bir nokta, sunucu farklı kullanıcı aracılarına farklı yanıt vermediği sürece sunucu tarafında bir zaman aşımı değil, muhtemelen ... – laker

+0

aslında, tarayıcıdan bağımsız olarak aynı zaman aşımının gerçekleşmesi mümkün olabilir, ancak sadece Firefox bir securityError bildiriyor. Diğer tarayıcılar websitesi yeniden oluşturuyor mu? BTW Linode websocket'u destekliyor mu? Hızlı bir google arama, hiçbir bilgi – laker

32

başka cevap çıkış noktası, https: // ws: // olarak ateş üzerinde varsayılan olarak izin verilmez.

Firefox'ın sayfasına gitmek için: config ve network.websocket.allowInsecureFromHTTPS geçişi SecurityError'dan kurtulacaktır.

+0

Evet bu işe yaradı! En azından Firefox'un kötü kısıtlamasıyla uğraşmak için bir çözüm var. –

+4

@FaisalMushtaq: "Kötü bir kısıtlama" değil, gerçekten en iyi güvenlik uygulamasıdır. – berkes