在客户端获取会话cookie之前,我希望阻止NodeJS响应连接尝试,除非请求/ login url。我在请求时添加了以下侦听器来关闭套接字:
server.listeners("request").unshift (request, response)->
if(request and request.url == "/login")
# Set /login as the only entrance point to the server
# A session cookie will be set here
else
# Authenticate based on the session cookie
# if the session is invalid or doesn't exist abort the connection
request.connection.destroy()
此解决方案是否足以满足我的需求,或者服务器是否会尝试与客户进行协商或在请求之前做出响应?我在同一个端口上使用https和一个websocket通过socket.io。
答案 0 :(得分:0)
在发出请求时,服务器已经从客户端接受数据。你无能为力,但除非你担心某人充斥着你的数据,否则这不是一个大问题。
您所拥有的内容足以满足您的要求,但请记住,解决方案的安全性在很大程度上取决于会话验证。特别是,防止会话被不同于最初启动的IP地址打开会是明智的。
答案 1 :(得分:0)
我发现服务器仍会响应任何连接的ssl握手,这意味着我的解决方案还不够。我会调查它,并可能就如何完成我想要的事情创建一个单独的问题。