HTTPS redirection for all routes node.js/express - Security concerns

后端 未结 3 900
遇见更好的自我
遇见更好的自我 2020-12-31 03:52

I recently took a stab at setting up HTTPS on a node/express server. I have successfully managed to redirect all the routes to use https using the code below:



        
3条回答
  •  醉梦人生
    2020-12-31 04:24

    function requireHTTPS(req, res, next) {
        if (!req.secure) {
            //FYI this should work for local development as well
            return res.redirect('https://' + req.get('host') + req.url);
        }
        next();
    }
    
    app.use(requireHTTPS);
    app.get('/', routeHandlerHome);
    

    The middleware approach will work because express will run the middleware in the order added, before it runs the router, and in general this kind of site-wide policy is cleaner as middleware vs. a wildcard route.

    Regarding question 2 about sniffing session cookies, that must be addressed by marking the cookies as secure when you set them. If they haven't been marked secure, the browser will transmit them with HTTP requests as well, thus exposing them to sniffing.

提交回复
热议问题