在Dart

时间:2015-05-26 10:32:40

标签: security authentication websocket dart dart-html

我正在尝试建立一个经过身份验证的websocket连接,这个问题是similar question for server part的兄弟姐妹。 当我从浏览器建立websocket连接时如何添加额外的头文件?

我正在尝试使用dart:html的WebSocket对象连接到需要包含当前身份验证令牌(JWT)的标头authentication:来验证用户的服务器。问题是WebSocket在构造函数调用后立即建立连接,它没有任何参数来发送带有http请求的头:

var ws = new WebSocket('wss://localhost:8080/ws');

在该字符串之后,websocket连接因错误而关闭,因为我的服务器拒绝所有不包含该路径标头中的身份验证令牌的请求。

是否有任何其他用于浏览器端的websocket实现允许验证websocket连接?

是否有可能为浏览器编写不同的WebSocket实现?

我不是安全专家,但在路径请求而不是标头中发送令牌是否安全?类似的东西:

wss://localhost:8080/ws?token=BLAHBLAHBLAH

1 个答案:

答案 0 :(得分:3)

您必须使用websocket自动发送的cookie,但您无法自定义使用WebSocket请求发送的标头。

您还可以在有效负载中发送和接收会话令牌。有关详细说明,请参阅https://devcenter.heroku.com/articles/websocket-security#authentication-authorization