-1

私は多くのオープンソース Web サイトを見てきましたが、ログインしたユーザーを記憶するためにさまざまな方法を使用しており、Cookie のみを使用するものもあれば、Cookie とデータベースを使用するものもあります。各方法の違いは何ですか? 使用する最良の方法は何ですか?

セキュリティ上の理由があると思いますが、理解できる人はいますか?

4

4 に答える 4

1

ユーザーの訪問を記憶するには、Cookie を使用する必要があります。DBではできません。

セッション変数は、セッションの間だけ持続します。たとえば、セッション変数を使用すると、翌日にはユーザーを「覚えていません」。

ユーザーに関する情報を永続的に保存するには、DB が必要です。「remember me」機能自体には必要ありません。たとえば、ユーザーについて知る必要があるのは名前だけである場合は、それを Cookie 自体に保存することもできます。ユーザーが戻ってくると、その名前が Cookie に含まれており、'Welcome foo' と言うのに使用できます。ただし、たとえばページがメール クライアントの場合、すべてのユーザーのメールを Cookie に保存することはできません。とにかく意味があるというわけではありません。このシナリオでは、Cookie からログイン資格情報を取得し、ログインしているユーザーをマークしてから、DB にアクセスしてメールを取得します。

于 2013-03-06T11:27:18.357 に答える
1

すべての "remember me" 機能には、後でユーザーを識別できるように、Cookie またはその他の方法でユーザーのコンピューターに少しの情報を残す必要があります。次に、サーバー上でユーザーを識別するのに役立つこの情報を取得し、ユーザーをシステムに再度ログインさせるために必要なことを行います。

于 2013-03-02T04:45:51.133 に答える
0

Cookie はユーザーのコンピューターにローカルに保存されるため、より高速です。

データベースでは、データを取得するためにサーバーに接続する必要があります。

より包括的なガイドについては、この質問を参照してください。

于 2013-03-02T04:40:56.797 に答える
0

Cookie はその時点では更新されませんが、それ以外の場合はセッションが更新されます。そのため、ユーザーを記憶する最善の方法は、セッション ID とデータベースを使用することだと思います

于 2013-03-02T04:49:06.020 に答える