亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使我的網站是在 SSL 下提供服務,我是否可以強制我的 Web 套接字不使用 SSL?

即使我的網站是在 SSL 下提供服務,我是否可以強制我的 Web 套接字不使用 SSL?

C#
幕布斯6054654 2023-08-20 11:10:07
我有一個 JavaScript 客戶端。我有一個網絡套接字,它正在嘗試與我的服務器通信。我的網絡應用程序在 https 下運行,我使用 Open SSL 來獲取我的證書。在我的 C# 中,我使用 Socket 對象來接收客戶端請求。我的客戶端可以連接,但當我嘗試讀取/解析標頭時,它已加密。(我不知道如何解密)。如果我的網絡套接字不使用 SSL,問題就會消失。但是,即使我將客戶端中的 uri 設置為:var url = "ws://192.168.0.9:8090/Relayer";改為:var url = "wss://192.168.0.9:8090/Relayer";這是我的服務器代碼://server starting to listenserverSocket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP );serverSocket.Bind( new IPEndPoint( IPAddress.Any, 8090 ) );serverSocket.Listen( 128 );serverSocket.BeginAccept( null, 0, OnAccept, null );//server responding to Client Request:private static Socket serverSocket;private static void OnAccept(IAsyncResult result){    byte[] buffer = new byte[1024];    try    {        Socket client = null;        string headerResponse = "";        if (serverSocket != null && serverSocket.IsBound)        {            client = serverSocket.EndAccept(result);            var i = client.Receive(buffer);            //my many attempts to read the data....                   string unicode = (Encoding.UTF8.GetString(buffer)).Substring(0, i);            string str = Uri.UnescapeDataString(unicode);            var outputs = System.Net.WebUtility.HtmlDecode(unicode);        }        if (client != null)        {            /* Handshaking and managing ClientSocket */        }    }    catch (SocketException ex)    {        Logger.LogVerbose(LoggerNames.Error, ex.ToString());    }    finally    {        if (serverSocket != null && serverSocket.IsBound)        {            serverSocket.BeginAccept(null, 0, OnAccept, null);        }    }}那么,我可以強制我的 Web 套接字不使用 SSL 嗎?謝謝好吧,閱讀完內容后,我明白混合 http 和 https、ws 和 wss 不是一個好主意。任何使用 SSL/wss 使其工作的想法都會很好:)
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

即使我的網站是在 SSL 下提供服務,我是否可以強制我的 Web 套接字不使用 SSL?

如果您的 JavaScrip 客戶端遵循安全約定,那么答案是否定的。答案也是“不應該”。

造成這種情況的原因有很多,但以下原因就足夠了:

當用戶觀察到該網站已加密時,他們會認為他們共享的任何私人信息都不會被第三方看到。這是加密所做出的承諾的一部分。然而,如果在聲明站點已加密后允許明文(未加密)通信,則可能會打破這一承諾。

這就是為什么安全客戶端不允許在安全網站內進行非加密通信(即 WebSockets、XHR 等)。

我的客戶端可以連接,但當我嘗試讀取/解析標頭時,它已加密。(我不知道如何解密)。

加密的數據應通過 SSL 層才能解密。

通常,許多語言都會提供“SSL 套接字”抽象,其行為類似于套接字,但會自動加密/解密數據。

查看完整回答
反對 回復 2023-08-20
  • 1 回答
  • 0 關注
  • 101 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號