security - 在 Dart 中从浏览器向 websocket 连接添加额外的 header

标签 security authentication websocket dart dart-html

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

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

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

在该字符串之后,websocket 连接将关闭并出现错误,因为我的服务器拒绝该路径 header 中不包含身份验证 token 的所有请求。

浏览器端是否有其他允许验证 Websocket 连接的 Websocket 实现?

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

我不是安全专家,但是在路径请求中发送 token 而不是 header 是否安全?像这样的东西:

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

最佳答案

您还必须使用由 websocket 自动发送的 cookie,但您无法自定义通过 WebSocket 请求发送的 header 。

您还可以在负载中发送和接收 session token 。请参阅https://devcenter.heroku.com/articles/websocket-security#authentication-authorization以获得更详细的解释。

关于security - 在 Dart 中从浏览器向 websocket 连接添加额外的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30456022/

相关文章:

apache - gss_acquire_cred 返回 key 表条目未找到错误

websocket - 打破异常:预期为字符串

ssl - elixir websocket lib 中的高级 SSL 选项

PHP 和 MySQL $_POST 安全和 md5() 散列函数

ruby-on-rails - 保护 REST 和 JSON

java - 是否有任何可以与 PHP/Python/其他集成的沙盒脚本引擎?

security - 如何在多个位置重复使用 NGINX 代理设置

facebook - Ember-simple-auth、Torii 和 Facebook Oauth2 的工作流程

node.js - 使用 Passport/Node.Js 激活用户帐户、电子邮件确认和邀请

javascript - 当用户与 Node.js 服务器断开连接时删除数组项