我使用node.js和ws模块创建了一个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协议更多的安全性。我不希望我的服务器只接受任何客户端。
我已经尝试过来自verifyClient
课程WebSocket.Server
来自ws的/projectRoot/
folder1/
somecode.py
utils/
__init__.py
myutils1.py
,但我迷失了想要弄清楚任何与websocket握手有关的事情。
我还想过添加一个检查客户端是否在连接时发送特定编码消息的函数。但这只能在建立连接后发生,所以我怀疑它是否安全。
有人可以帮助我为我的wss连接添加更多安全措施吗?