Node.js / Websockets – 为服务器添加安全性 – html客户端连接
我使用node.js和ws模块创build了一个websocket服务器:
var options = { port: 8080, key: fs.readFileSync('ssl/key.key'), cert: fs.readFileSync('ssl/cert.cert'), ca: fs.readFileSync('ssl/ca.pem'), requestCert: false, rejectUnauthorized: true } var processRequest = function(req, res) { console.log("Request received.") }; var server = https .createServer( options, processRequest) .listen(options.port, function(){ console.log("HTTPS server created and listening to port " + options.port); }); var wss = new WebSocket.Server ({ server: server });
这里是一个简单的HTML客户端:
conn = new WebSocket('wss://127.0.0.1:8080'); conn.onopen = function(e) { console.log("Connection established!"); }; conn.onmessage = function(e) { console.log(e.data); }; conn.onclose = function(e) { console.log('connection closed'); }
我也将其添加到客户端的index.html:
<meta http-equiv="Content-Security-Policy" content="connect-src 'self' https://example.com/ https://code.jquery.com/ data: gap: ws: wss: ssl.gstatic.com ;">
我想要的是为这个和所有其他潜在的连接添加更多的安全性,而不仅仅是wss协议。 我不希望我的服务器只接受任何客户端。
我已经从ws的WebSocket.Server
类的verifyClient
尝试了我的运气,但我迷路了试图找出任何有关websocket握手。
我也想过添加一个函数来检查客户端是否在连接上发送一个特定的编码消息。 但是这只能在连接build立后才会发生,所以我怀疑这是安全的。
有人可以帮我添加更多的安全措施,我的wss连接?