问一个安全性问题

阿玛尼

比如说: 我的网站域名是 3w.xxxxx.com ,
那么别人就可以 通过ws = new WebSocket("ws://3w.xxxxx.com:7272"); 来直接连接到我的服务器上, 我想做的就是,只有打开的是我的网站的域名才能连上,其他的不能连上我的服务器上,该怎么做, 要在服务器那边做设置吗? 该怎么设置呢?

4317 6 0
6个回答

阿玛尼

用这个 应该可以 判断 $_SERVER

  • 暂无评论
阿玛尼

这个 还是不行啊 求大神帮忙

  • 暂无评论
walkor

参见手册
http://doc3.workerman.net/appendices/about-websocket.html
打开start_gateway.php 都有这段代码,默认是注释的,打开即可。

// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调
$gateway->onConnect = function($connection)
{
    $connection->onWebSocketConnect = function($connection , $http_header)
    {
        // 可以在这里判断连接来源是否合法,不合法就关掉连接
        // $_SERVER标识来自哪个站点的页面发起的websocket链接
        if($_SERVER != 'http://chat.workerman.net')
        {
            $connection->close();
        }
        // onWebSocketConnect 里面$_GET $_SERVER是可用的
        // var_dump($_GET, $_SERVER);
    };
}; 
  • 暂无评论
阿玛尼

event.php 文件 没有这个变量 $_SERVER

  • 暂无评论
阿玛尼

嗯嗯 知道了 谢谢

  • 暂无评论
aguai

如果你的网站和wm服务器是一个的话,监听127.0.0.1更简单。

  • 暂无评论
年代过于久远,无法发表回答
🔝