Flask
Nginx + WSGI(FastCGI&Gevent)で提供されるアプリケーションがあり、標準のFlaskセッションを使用しています。またはその他の追加オプションは使用しませんが、デフォルト構成で設定するだけです。session.permanent=True
SECRET_KEY
セッションに(key、value)ペアを保存せずSID = session['_id']
、エントリに依存してリピーターを識別します。私は次のコードを使用しますSID
。
@page.route ('/')
def main (page='home', template='index.html'):
if not request.args.get ('silent', False):
print >> sys.stderr, "Session ID: %r" % session['_id']
私は次の観察をしました:
- IPアドレスは同じですが、ブラウザが異なると、取得も異なります。これ
SIDs
は予想されることです。 - 異なるIPと同じブラウザの場合、私は再び異なるものを持っています
SIDs
-期待されています。 - 同じブラウザで同じIPアドレスを使用しても、同じ結果が得られ
SID
ます。これも予想されます。
ここで、ポイント(3)は興味深いものです。これは、対応するCookieを削除しても、一定SID
のままであるためです。それでもある程度は理解できるかもしれませんが、実際には、異なるCookie間で変更されることを期待していました。しかし、私が見る唯一の違いはそれですSID
session.new is True
Cookieの削除直後の最初のリクエスト。それでも非常に期待されています。しかし、これらの事実を考えると、私は次の問題に直面しています。
これは、同じIPの背後にいる(同じブラウザー構成の)異なるユーザーの場合、バックエンドがそれらを同じユーザーと間違えることを意味しますか?
ポイント(1)が当てはまらない場合、これらの「スティッキー」セッションの現在の動作は実際には非常に快適です。これにより、ユーザーが対応するCookieを削除したという理由だけでデータが失われる可能性がなくなります。
同じブラウザで同じネットワークからサイトに再度アクセスすることで、1日を節約できます。私はそれが好きですが、ポイント(1)が当てはまらない場合に限ります。
ポイント(1)は実際に私を噛むと思いますが、結論は実際に
token
はセッションにを保存し、ユーザーがCookieを削除するだけで自分自身を爆破できるという運命を受け入れることでしょうか?または、新鮮なクッキーごと
Flask
に異なるものを与えるように指示する方法はありますか?SIDs
実際、この質問は、(同じIP上で)異なるユーザーをシミュレートする負荷影響サービスを使用したために発生しましたが、対応するユーザーSIDs
がすべて同じであるため、バックエンドはそれらを単一のユーザーとして見続けました。
このアプリケーションは、http: //webed.blackhan.chでテストできます(リリース時にhttps://notex.ch [ブラウザーベースのテキストエディター]を移動します)。ご回答ありがとうございます。