2011-09-06 68 views
2

我目前正在开发一个Google Chrome浏览器扩展,它通过WebSockets连接到我们的服务器,但害怕有人能够用假数据来爆炸我们的服务器,所以我们希望实施安全措施以防止其他源连接到服务器。验证WebSocket连接源

有什么方法可以将安全措施集成到应用程序和服务器中,以验证来自Google Chrome扩展程序的连接?

有什么其他的事情,我们应该知道什么时候做这种应用程序?任何建议表示赞赏。

回答

3

在WebSocket握手中,有一个“Sec-WebSocket-Origin:”标题(或者最近只是“Origin:”)。这由浏览器设置为加载页面的原始站点。您可以将服务器配置为只接受来自网站的网页的连接。

请注意,这不是一个100%的万能药,因为有人可以编写欺骗Origin字段的WebSocket客户端(因此仍需要一些额外的身份验证方法)。但是,它确保普通人正常运行的浏览器无法向您发送虚假数据。

另请注意,普通浏览器仍然可能被劫持参与针对您的网站的DDOS攻击,但无论浏览器是否支持WebSocket,这都是事实。所以你仍然想采取正常的措施来防止这种情况发生。

+0

人们甚至可以加载扩展弹出窗口,并从那里开始假连接。我认为防止这种情况几乎是不可能的,因为您无法在服务器端知道客户端做了什么。你不能依赖客户端JavaScript。 – pimvdb

+0

@pimvdb,即使在Chrome扩展中,您也无法伪造Origin字段。而且您也无法通过Chrome扩展程序进行任意套接字连接,只能使用WebSocket连接。 – kanaka

+0

我的意思是,你可以使用从扩展弹出框内启动的WebSocket连接来爆炸服务器,并使用该WebSocket连接发送大量数据。但是我误解了这个问题,因为它是关于其他来源的,我很抱歉。 – pimvdb