簡體   English   中英

如何阻止SignalR Chat從控制台進行jQuery調用?

[英]How do I prevent jQuery calls from console for my SignalR Chat?

我有一個SignalR聊天網站,專門用於學校項目(也使用C#)。 從理論上講,它適用於受信任的用戶,但正如每個人都會證明的那樣-永遠不要信任您的用戶。 當我將鏈接發送給我的幾個朋友時,這種情況就證明了這一點,他們立即嘗試破壞它,哈哈。

我現在已經正確地清理了所有輸入,但是他們仍然能夠做的一件事就是使用瀏覽器控制台工具來手動調用發送消息所需的功能,等等。

示例: $.connection.chatHub.server.sendMessageToAll('FakeUser','FakeMsg',0);

我想阻止這些類型的動作。 我記得前一段時間,Facebook實際上出於“安全”目的禁用了控制台窗口。 我什至發現了幾個{1} 資源{2} ,它們詳細說明了此操作的完成方式,並嘗試在Chrome 修復此問題后進一步阻止控制台使用。

但是,這些選項都不起作用了,並且由於瀏覽器不斷變化,我寧願不要嘗試在此級別進行阻止。

我想知道堆棧上是否有人知道更好的方法來防止此類攻擊? 有沒有很好的方法來檢查呼叫的來源? SignalR有防止這種情況的好方法嗎? 想法/討論肯定會受到歡迎。

試圖像這樣鎖定客戶端可能會很好地防止非技術用戶干擾您的應用程序,但是對於知識淵博且機智高昂的對手,它幾乎無濟於事。 這種安全措施有意義的情況是相當有限的,並且當然不包括任何可以從互聯網上訪問的應用程序。

唯一安全的方法是眾所周知的且非常簡單: 服務器不信任客戶端 客戶端嘗試執行什么操作並不重要,因為服務器將拒絕它認為無效的所有操作。

在您的示例中,服務器將為每個會話分配一個隨機的不透明連接ID。 如果客戶端發送了有效的ID作為請求的一部分,則客戶端只能說服服務器執行任何操作 那么,服務器將不需要信任客戶端的用戶名,因為服務器已經知道每個用戶從哪個連接登錄,並在給出ID時可以生成用戶名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM