2016-10-29 4 views
0
app.use(session({ 
    secret: "testing credentials", 
    store: sessionStore, 
    resave: true, 
    saveUninitialized: true, 
    cookie : { 
     httpOnly: true, 
     //secure: true, 
     maxAge : 60 * 60 * 1000 
    } 
})); 

새로 개발 된 웹 사이트의 보안 문제를 해결하기 위해 노력하고 있습니다. 온라인 조사를 한 후에 secure = true로 설정하면 보안이 강화됩니다. 그러나 secure를 설정하면 true : 사용자가 다른 요청을 보낼 때마다 세션 내부의 정보가 손실됩니다. 이 문제를 해결할 방법이 있습니까? 쿠키에 "secure : true"가 포함되지 않은 경우 세션은 해당 maxAge에 지속됩니다.express-session secure : true

답변

0

쿠키가 secure 플래그로 설정되면 브라우저가 https를 통해 서버로 보내지 만 일반 http는 보내지 않습니다. 프로덕션 환경의 경우이 값이 기본값이어야합니다.

그러나 앱을 개발할 때 개발자의 컴퓨터에서 일반 http를 사용하는 것이 좋습니다. 이 경우 세션 쿠키를 secure (일반 http 사용)으로 설정하면 서버에서 쿠키를 수신하지 않고 각 요청에 대해 새로운 빈 세션이 발생합니다.

간단히 말해, https를 사용하는 경우 (즉, 개발 파이프 라인의 후기 단계에서, 실제로 생산 단계에있는 경우)에만 쿠키를 secure으로 설정해야합니다.

또 다른 참고로 maxAge을 설정하면 쿠키가 지속되므로 세션 쿠키의 모범 사례는 아닙니다. maxAge이 없으면 사용자가 브라우저를 닫고 일반적으로 세션 쿠키에 대한 올바른 동작 인 디스크에 저장되지 않을 때까지 쿠키가 유지됩니다.