2016-11-01 4 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を格納する生成されたCookieに 'secure'フラグが追加されるためです。

CherryPyでHTTPSを使用していない場合、このCookieはその後のリクエストでは返されないため、毎回新しいセッションIDが生成されます。

CherryPyでHTTPSを有効にすると、問題が解決されます。これを有効にする方法については、CherryPy documentation on SSLを参照してください。

関連する問題