2016-11-01 5 views
0

localhost에서 cherrypy 응용 프로그램을 개발 중이며 세션을 통해 어떤 일이 벌어지고 있는지 파악했습니다.cherrypy 'tools.sessions.secure'는 깨는 세션 인 것 같습니다.

import cherrypy 

class WhyNotSessions(object): 

    @cherrypy.expose 
    def index(self): 
     if 'count' not in cherrypy.session: 
      cherrypy.session['count'] = 0 
     cherrypy.session['count'] += 1 
     return "Session count is %s" % cherrypy.session.get('count') 

if __name__ == '__main__': 
    conf = { 
     '/': { 
      'tools.sessions.on': True, 
      'tools.sessions.secure': True 
     } 
    } 
    cherrypy.quickstart(WhyNotSessions(), '/', conf) 

count가 다시로드에 증가로, 예상대로이 작동 - 한 내가 conf에서 'tools.sessions.secure': True을 주석으로. 생산 현장에서 보안 세션을 사용하고자하므로 여기에서 어떤 일이 일어나는지 더 잘 이해하고 싶습니다.

답변

0

나는이 동일한 문제를 우연히 발견했습니다.

'tools.sessions.secure'를 True로 설정하면 세션 ID를 저장하는 생성 된 쿠키에 'secure'플래그가 추가되기 때문입니다.

CherryPy에서 HTTPS를 사용하지 않는 경우이 쿠키는 이후 요청에서 절대 반환되지 않으므로 매번 새로운 세션 ID가 생성됩니다.

CherryPy에서 HTTPS를 사용하도록 설정하면 문제가 해결됩니다. 이 기능을 켜는 방법은 CherryPy documentation on SSL을 참조하십시오.