13

私はしばらくの間Flaskを使用しており、フレームワークを本当に楽しんでいます. 私が理解できないことの1つは、他のほとんどすべての場所で、セッションをサーバーに保存し、セッションIDをクライアントに保存することについて話していることです。これにより、セッションが識別されます。しかし、フラスコを使用した後は、そうする必要はありません。クライアントにセッションを Cookie として保存することは、暗号的に私の目的を果たし、非常に安全であるようにも見えます。唯一のことは、たとえば次のセッションキーを暗号化できないことです。

session['life'] = 'the great one'

次のように表示されます

life='gfhjfkjdfa some encryption kj'

クライアントに保存された Cookie に。しかし、それはまだ暗号化されているので、それはどのように重要でしょうか. ここにいる人たちは私よりも物事をよく知っていると確信しているので、誰かに明確にするように依頼してください:-)

4

4 に答える 4

18

データが暗号化されていても、ユーザーは Cookie を以前の状態に戻すことができます (ワンタイム ID のエンコードなどを開始しない限り)。

たとえば、Cookie は、ユーザーが 100 クレジットを持っていることを示し、ユーザーが 100 クレジットを消費すると、クレジットが 0 であることを示す新しい Cookie を取得します。その後、以前の Cookie を復元できます (100 クレジット)。

Cookie の暗号化方法によっては、ユーザーがキーを削除したり、偽のデータを挿入したりすることもできます。

于 2010-10-16T13:16:29.850 に答える
8

サーバーでセッション データが必要な場合は、それをサーバーに保存するのが理にかなっています。クライアントとの間で送受信される大量のデータを抑えます。また、クッキーには保存できるデータ量に制限があります。

于 2010-10-16T13:05:52.293 に答える
7

上記のポイントに加えて、

  1. ユーザーは、ブラウザの設定を使用して Cookie を無効にすることができます。多くのウイルス対策スキャナーも Cookie をスキャンし、リスクとしてフラグを立てます。そのため、ユーザーのコンピューターで Cookie が許可されない可能性もあります。

  2. ユーザーは、セッションの途中でも Cookie を削除できます。(実際、先日、PC スキャンで追跡 Cookie がリストされたときにうっかりしてしまいました...そして「クリーン」をクリックしただけで、それらはすべて消えてしまいました)。ユーザーが Cookie を削除してしまった場合、ユーザーの状態は失われます。

Cookie を使用して状態全体を管理する場合、常にクライアント環境とその設定に依存します。そのため、アプリケーションが正しく機能するためには、Cookie が削除されたり無効になったりした場合に備えて、少なくともフォールバック メカニズムが必要になるでしょう。

于 2010-10-16T13:38:42.980 に答える
2

Flask が使用する SecureCookie 実装は、値を暗号化しません。保証されている唯一のことは、アプリケーションが使用する秘密を知らずにユーザーが Cookie を変更できないことです。

于 2010-10-30T08:21:34.763 に答える