以下内容引自RFC6455 - WebSocket协议。
不打算处理任何网页输入的服务器 只对某些网站应该验证| Origin |领域是一个起源 他们期待。如果指示的来源对服务器不可接受, 那么它应该回复WebSocket握手 包含HTTP 403 Forbidden状态代码。
The Origin |标题字段可以防止攻击时的情况 不受信任的一方通常是JavaScript应用程序的作者 正在受信任客户端的上下文中执行。客户端 本身可以通过| Origin | 的机制联系服务器和 标题字段,确定是否扩展这些通信 JavaScript应用程序的权限。 意图不是要防止 非浏览器建立连接,而是确保连接 受信任的浏览器受潜在恶意JavaScript的控制 无法伪造WebSocket握手。
我无法确定第2段的含义,尤其是 italic 部分。任何人都可以解释一下吗?或者也许是一个例子。
到目前为止,我的理解是这样的:
如果服务器可以确定请求DO来自 Web 页面,则可以使用ORIGIN标头阻止来自不受欢迎的 Web 页面的访问。 / p>
如果服务器无法确定请求来自 Web 页面,则ORIGIN标题仅仅是建议性的。
答案 0 :(得分:5)
您的理解似乎是正确的,但是......
我会改写它 - 你可以肯定,javascript客户端会发送正确的原始标题。您不知道其他客户将发送什么(以及价值是否正确)。
这可以防止其他网页连接到"您的" Web套接字端点(这是一个大问题,想象在jsfiddle或某些经常访问的页面上的某处注入javascript),但是如果你需要确保没有其他客户端能够连接到它,你需要引入其他一些安全措施。
我认为这只是为了防止基于浏览器的数据窃取"或" DDoSing",没有别的;你仍然可以通过使用其他客户端来做到这一点。