Kit*_*day 2 javascript sockets security wss socket.io
我一直在尝试设置服务器,以便用户可以使用websocket发送登录,但是我不想使用ws进行操作。我希望能够在没有https的情况下打开wss。可悲的是,没有任何选择可以做到这一点。因此,问题是如何在不使用https协议的情况下在客户端执行此操作。
一个
wssURI标识的WebSocket服务器和资源名称,并指示业务通过该连接要保护通过TLS(包括TLS标准的好处,比如数据的机密性和完整性,以及端点认证)。
强调我的
现在您可以理解您的请求的荒谬之处了:wss 是 https。
当然,术语是错误的(https是与wss不同的协议),但归根结底,两者都只是基于TLS的各自 TCP 纯协议(http和ws)的版本。
所以答案是否定的。
事实上,安全是一件复杂的事情。
非常有经验的程序员不会发明或探索新方法,并且根据您提出的问题类型,您似乎没有太多的专业知识。
所以最好按照最佳实践说的那样做,他们说使用“ https ”使用“ https ”。
建议开始认真研究安全性(或聘请承包商),发明新方法来执行安全身份验证不是,除非您拥有抽象代数博士学位和多年开发密码方案的经验。
是的,这是可能的。为此,将您的websocket URL直接传递给socket.io客户端,如下所示:
var socket = io('wss://example.com/');
Run Code Online (Sandbox Code Playgroud)
请注意,相反的做法是不可能的:虽然没有什么可以阻止HTTP页面创建WSS连接的,但是当今大多数浏览器都阻止来自HTTPS页面的任何WS连接,以增强安全性。
我还要提醒您,通过WSS打开的Websocket仍然不比其起源页面安全。如果将WSS用于安全性方面,请注意,如果攻击者在加载页面时覆盖了您的页面(HTTPS会阻止),那么所有这些安全性都将一无所获。