2017-11-08 11 views
0

laravel broadcaastingでソケットアプリケーションをビルドしました。私は私のサーバースクリプトを作ってから、このスクリプトのようにHTTPSを追加しました:(それはメモリから書かれているので、コードがエラーを含む場合があります)その後Socket.io-auth - ペイロードリクエストから資格情報を隠す

var fs = require('fs'); 
var https = require('https'); 

var express = require('express'); 
var app = express(); 

var options = { 
    key: fs.readFileSync('./file.pem'), 
    cert: fs.readFileSync('./file.crt') 
}; 
var serverPort = 3000; 

var server = https.createServer(options, app); 
var io = require('socket.io')(server); 

require('socketio-auth')(io, { 
    authenticate: authenticate, 
    postAuthenticate: postAuthenticate, 
    disconnect: disconnect, 
    timeout: 1000 
}); 

私はsocketio-AUTHを追加し、ちょうどユーザ名とパスワード認証のためにそれを修正しました。

function authenticate(socket, data, callback) { 
    if (data.username != "username") { 
     return callback(new Error("User not found")); 
    } 
    return callback(null, user.password == "password"); 
    } 
} 

私の質問は、私はソケット経由で送信していcredntialsについてです。

import VueSocketio from 'vue-socket.io'; 

Vue.use(VueSocketio, socketio('https://socketserver.com:1923', {secure: true})); 

var vm = new Vue({ 
    sockets:{ 
    connect: function(){ 
     console.log('socket connected') 
     this.$socket.emit('authentication', {username : "username", password: "password"}); 
    }, 
    }, 
}) 

私は実際にvue-socketioでVueを使用していますが、接続や情報の取得/送信を実際に行っています。

問題私は、Google Chromeのコンソールに行くときに平文ソケットを取得すると、 ({認証:{ユーザー名: "ユーザー名"、パスワード: "パスワード"}})のような認証情報を出しています。

私はsslを使用しているときにその普通のことはありますか?私のコードに何か問題がありますか? または、この情報を自分で暗号化して解読する必要がありますか?

私はHTTPS経由で送信するすべてが暗号化されていると思っていました。

ur再生してください。ありがとう!

答えて

0

私は自分の暗号化装置を作った。 クライアントの場合は、暗号化された情報をデータで出力し、検証ハッシュをsocket.idで出力します。

サーバーiでは、hmac検証をsocket.idで確認します。