我如何防止jQuery调用控制台为我的SignalR聊天

本文关键字:我的 SignalR 聊天 控制台 调用 何防止 jQuery | 更新日期: 2023-09-27 18:17:58

我有一个SignalR聊天网站,用于学校项目(也使用c#)。理论上,它是为受信任的用户准备的,但正如每个人都会证明的那样——永远不要相信你的用户。当我把链接发给我的几个朋友时,他们立即试图破坏它,哈哈。

我现在已经正确地清理了所有输入,但他们仍然可以使用浏览器控制台工具手动调用发送消息所需的函数,等等。

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

我想阻止这类行为。我记得不久前Facebook出于"安全"考虑禁用了控制台窗口。我甚至找到了几个{1}资源{2},其中详细说明了如何做到这一点,并试图进一步防止使用控制台一旦Chrome修复了这个问题。

然而,这些选项都不再工作了,因为浏览器不断变化,我宁愿不尝试在这个级别阻止。

我想知道Stack上是否有人知道更好的方法来防止这些类型的攻击?有没有好的方法来检查电话是从哪里打来的?SignalR有一个很好的方法来防止这种情况吗?

我如何防止jQuery调用控制台为我的SignalR聊天

尝试像这样锁定客户端可能会很好地防止非技术用户扰乱您的应用程序,但对于知识渊博且足智多谋的对手来说,它几乎无能为力。这种安全措施有意义的情况是相当有限的,当然不包括任何人都可以从互联网上访问的任何应用程序。

唯一安全的方法是众所周知的,非常简单:服务器不相信客户端任何。客户端尝试做什么都无关紧要,因为服务器将拒绝它认为无效的所有操作。

在您的示例中,服务器将为每个会话分配一个随机的不透明连接id。客户端只有在发送有效id作为请求的一部分时才能说服服务器做任何事情;这样,服务器就不需要信任客户机的用户名,因为它已经知道每个用户从哪个连接登录,并且在给定id时可以生成用户名。