【发布时间】:2012-01-03 07:13:39
【问题描述】:
我只想从服务器的内部进程发送消息,然后发送到客户端,并且由于 SignalR 的灵活性,我担心 XSS 可以轻松发送消息“myhub.addMessage”并发送我不知道的垃圾想播出。例如,我有 50 个人在一个页面上侦听来自 SignalR Hub 的消息。他们没有明确的方式通过 GUI 发送消息,但是,一个笨手笨脚的人可以轻松地破解一些脚本并开始发送消息以供所有人查看。
换句话说,这有点像拥有一个聊天室,但您想阻止人们发送消息。你只希望他们听到。说得通?
【问题讨论】:
-
如果你把 signalr 排除在外,只使用 web 服务调用,你会怎么做?
-
@dfowler 你创建了这个并且你知道你可以对“addMessage”进行 XSS 是不是正确或不正确?你如何通过简单地做一个视图源,抓住它,在本地放置一个基本标签,然后把一些脚本放在那里来防止某人通过 JavaScript 做“addMessage”?我希望类上有一些 c# 标志或设置使其只读。
-
你有点忽略了我的问题。
-
不想忽视你@dfowler。我高度评价你的努力。您的问题实际上是在说“以自己的方式做事”。是的,我可以,但重点是使用一个很好的框架来进行广播,但不允许发布聊天。基本上你的解决方案有一半允许实时更新,但只是禁止人们进行 XSS 的能力。如果这是您的最终答案,我将查看您在 Git 上的来源。不用担心。
-
实现某种安全性,将令牌传递给服务器,如果可能的话,命令也可以工作。