首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全websocket交换

安全websocket交换
EN

Stack Overflow用户
提问于 2014-03-23 21:42:21
回答 1查看 257关注 0票数 0

我在网上寻找关于这个帖子的信息。如果我理解,使用https或wss,需要SSl证书吗?这些方法能保证数据交换的安全?

我看了一份关于RSA的文件。看起来很好,而且很安全。但是,我怎样才能实现这些呢?我发现了一个叫“密码”的酒吧包裹。很好吗?

实际上,对于服务器端,我的代码如下所示:

代码语言:javascript
复制
import 'dart:io';
import 'dart:async';

ft_handle_error(error) => print("The are on error $error");

handle_msg(String msg) => print("Message received : $msg");

void    ft_server_html(HttpRequest request)
{
    if (request.uri.path == '/')
    {
        request.response.statusCode = HttpStatus.ACCEPTED;
        request.response.headers.contentType = new ContentType('text', 'plain');
        request.response.write('Hello toi !');
    }
    else
        request.response.statusCode = HttpStatus.BAD_REQUEST;
    request.response.close();
}

void    ft_ws_server(HttpRequest request)
{
    if (request.uri.path == '/ws')
    {
        WebSocketTransformer.upgrade(request)
        .then((socket)
        {
            socket.listen(handle_msg);
            socket.add("Recu");
        })
        .whenComplete(request.response.close);
    }
    else
        request.response.close();
}

void    main()
{
    HttpServer.bind('127.0.0.1', 8080)
    .then((server) => server.listen(ft_server_html))
    .catchError(ft_handle_error);
    HttpServer.bind('127.0.0.1', 4040)
    .then((ws_server) => ws_server.listen(ft_ws_server))
    .catchError(ft_handle_error);
}

和客户端

代码语言:javascript
复制
import 'dart:html';

void    main()
{
    WebSocket wss;

    wss = new WebSocket('ws://127.0.0.1:4040/ws');
    wss.onOpen.listen((_) => wss.send("From browser"));
    wss.onMessage.listen((msg) => print("Msg received : ${msg.data}"));
}

它很好用,但我觉得还不够安全。再次感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-24 16:35:58

您可以创建一个自签名证书:https://devcenter.heroku.com/articles/ssl-certificate-self

使用它,数据将被保护免受偷窥者的攻击。除非有人偷了你的私钥,否则小偷就能破解通讯。

但是,由于证书不是由有效的CA签名的,所以您的客户无法确定是否连接到他认为的位置,正如@SLaKs所指出的那样,enablin MITM攻击。这就是,有人可以坐在你的客户和服务器之间,然后读取所有的东西。

因此,如果您的客户一旦意识到这一点,就不想为证书付费,并且热衷于接受浏览器每次连接时都会发出有关CA签名的警告,您可以使用自签名的证书。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22597484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档