2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 (Не)защищённый WebSocket
Сообщение29.08.2020, 16:44 
Будет ли защищённым и безопасным подключение WebSocket, если клиентский JS выполняет что-то типа let socket = new WebSocket("wss://example.com"), а серверный Node.JS выполняет что-то типа const http = require('http'); const ws = require('ws'); const wss = new ws.Server({noServer: true}); http.createServer(некая_функция).listen(8080) вместо создавания сервера через require('https')?
Я нашел https://stackoverflow.com/questions/267 ... s-on-https, но непонятно, означает ли "if the HTML/JavaScript that opens the secure WebSocket connection comes over non-secure HTTP" только использование клиентом ws вместо wss, или также и использование сервером require('http') вместо require('https')?

 
 
 
 Re: (Не)защищённый WebSocket
Сообщение29.08.2020, 20:54 
На форуме по ссылке первый ответ от oberstet можно считать неправильным либо правильным в очень извращенном смысле этого слова.
Цитата:
the WebSocket connection is still secure, but an attacker might modify the HTML/JavaScript while being sent from the Web server to browser. A HTTP connection isn't protected against man-in-the-middle sniffing or modification.
Т.е. oberstet пишет, что соединение по WebSocket будет безопасным, но все могут читать и модицировать пересылаемую по этому соединению информацию. :D
В Вашем серверном коде нет никакого намека на использование TLS-сертификата. Как же wss будет шифровать трафик в "WebSocket Protocol over TLS", как этот протокол называется в RFC 6455, если TLS-сертификат сервером не используется?!
Вы уверены, что клиент по URI на wss постучится в 8080-й порт без подсказки?

 
 
 
 Re: (Не)защищённый WebSocket
Сообщение29.08.2020, 22:49 
ipgmvq в сообщении #1481277 писал(а):
Как же wss будет шифровать трафик в "WebSocket Protocol over TLS", как этот протокол называется в RFC 6455, если TLS-сертификат сервером не используется?!

Т.е. надо все же использовать require('https')?

 
 
 
 Re: (Не)защищённый WebSocket
Сообщение29.08.2020, 23:15 
kotenok gav
Выходит, что так.
Я думаю, wss в Вашем коде символизирует не "secure WebSocket", а "WebSocket server".

 
 
 
 Re: (Не)защищённый WebSocket
Сообщение30.08.2020, 11:05 
Э... вообще-то, нет. wss отличается от ws именно безопасностью, насколько я знаю.

 
 
 
 Re: (Не)защищённый WebSocket
Сообщение30.08.2020, 11:41 
kotenok gav в сообщении #1481317 писал(а):
Э... вообще-то, нет. wss отличается от ws именно безопасностью, насколько я знаю.
Я имел в виду, что в том единственном месте, где у Вас в серверном коде встречается слово "wss", оно является произвольно выбранным разработчиком названием константы, которая хранит ссылку на созданный объект типа Server библиотеки ws.
Название для этой константны wss в этом коде придумано разработчиком (он мог назвать её как угодно). Вопрос, что для него лично в этом коде символизировала аббревиатура wss для этой константы?! Тут я предположил, что она для него лично обозначала "WebSocket server", потому что хранит ссылку на объект типа Server библиотеки ws.

 
 
 
 Re: (Не)защищённый WebSocket
Сообщение30.08.2020, 11:57 
А, вы об этом. Я имел в виду разницу между клиентскими wss://example.com и ws://example.com.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group