2013-04-28 29 views
8

Websockets kullanan bir uygulama yapıyorum. Sadece kimliği doğrulanmış kullanıcıların oturum açtıktan ve bir oturum kimliği verildikten sonra sunucuyla bir web bağlantısı bağlantısı açmasına izin vereceğim. Ben doğrulanmış bir kullanıcı ile bir WebSocket bağlantısı açtıktan sonraAçık bir web bağlantısının etrafındaki güvenlik sorunları nelerdir?

  1. , şimdiki "sayfa" sonra açık WebSocket bağlantısının detaylarını tutar. Bu noktada, bu bağlantı nispeten güvenli midir? Ya da her mesajda, websocket üzerinden gelen kendi uygulama seviyesi protokolümde bazı belirtileri gerçekten kontrol etmeli miyim?

  2. Bilinen herhangi bir siteler arası sahtecilik tipi güvenlik sorunları var mı? Birisi, açık bir websocket'u, bazı javascript'i belirli bir şekilde yürütmek için kimliği doğrulanmış kullanıcıyı alıp, açık websocket bağlantısını kullanabilme kabiliyetiyle sonuçlanabilir mi? Eğer sunucu tarafında güvenli yaptığınızda

cevap

4

1) bağlantısı, güvenlidir. Dolayısıyla, WebSockets üzerinden bir oturum kimliği göndermeniz, sunucu tarafında doğru olduğunu doğrulamak ve bağlantıyı geçerli olarak işaretlemek zorundasınız. HTTP ile kimlik denetimi daha zordur, çünkü HTTP vatansızdır (ham TCP'den farklı olarak). Tabii ki TCP bağlantısını kandırmak hala mümkün, fakat bu kolay değil (örneğin, this article) ve eğer olursa, o zaman hiçbir şey (TLS hariç) size yardımcı olamaz.

2) Böyle isimsiz bir işlev ile WebSocket bağlantısını sarın Eh,:

(function() { 
    var ws = new WebSocket("ws://localhost:1000"); 
    // some other stuff 
})(); 

sonra hiçbir harici JavaScript Bu konuda endişelenmenize gerek kalmaz, erişmek mümkün olacak.

+1

Yukarıdaki # 1 ile ilgili olarak - evet, bağlantıyı kurmak için bir HTTP GET isteği olduğundan, orijinal el sıkışmasında çerezi kontrol ediyorum. Çerez, önceki bir kimlik doğrulama yoluyla geçerli bir oturum kimliğine sahip olmalıdır. Bu yüzden ben güvenli bir şekilde bağlantıyı veriyorum ... bu bağlantı açıkken ve her mesajın doğrulanmamasına rağmen şu anda zayıflıkların var olabileceği açık değildi. – Rocketman

İlgili konular