2011-01-18 3 views
2

PHP、symfony 1.4、Doctrine、sfGuardキャッシュ機能を強化するためにユーザー名をCookieに保存していますか?

大部分のページを完全なHTMLページとしてキャッシュできるサイトがあります。しかし、ほとんどのサイトの右上に表示される従来の「ユーザーアカウントツールバー」があります(ログインしたユーザー名、ログアウトリンクなどを表示します)。

これは、ページがHTMLとして完全にキャッシュされないようにしますページを標準HTMLとして出力し、ページロード後のユーザ名などにJavascriptを使用して追加します。

ユーザーがログインすると、ユーザー名だけを格納する追加のCookieが作成されます。 JavascriptはCookieが存在するかどうかを確認し、アカウントツールバーを作成します。ユーザー名は表示目的でのみ使用されます。実際にログインするには、パスワードなどを使用して、通常のログインページを通過する必要があります。

私はブログ投稿などを検索しましたが、あまり見つかりませんでした。誰でもこれを使ってセキュリティやその他の懸念事項を特定できますか?

答えて

1

ユーザー名が表示目的でのみ使用されている限り、あなたは金色でなければなりません。 PHPの$ _SESSIONからユーザ名を取得するためにXHRを使用することもできます。

私の懸念は、そのユーザーを認証するためにユーザー名を使用することです。またはユーザー名をキーとしてキャッシュにアクセスします。ユーザー名を変更することで、攻撃者は別のキャッシュにアクセスできます。

+0

ありがとうございました。セッションは別のキーで保存されるので、Cookie内のユーザー名を変更すると、ページに表示される名前を変更する以外の効果はありません。 – evilcelery

0

クッキーに敏感なものは絶対に保存しないでください。私には、ユーザー名が含まれています。

+0

ユーザー名は公開されていて、誰でもサイト上でそれらを見ることができます。 – evilcelery

+0

ほとんどのアプリはユーザー名をあいまいにしません。主キーを繰り返し処理し、すべてのユーザー名を列挙できます。唯一の例外はpaypalのようなサイトです。このソリューションではXHRが優れていますが – rook

+0

私はその考えが好きです、ルーク。私はユーザー名がロックダウンされても構いませんが、システムのメンバーでない場合には攻撃者が必要とするものの半分であるため、私には決してクッキーに入れてはいけません。あなたのアイデアは良いものです、主キーを介してそれを探して、サイトでユーザー名を表示したままにしておきます。クッキーに保存されているものがログイン資格情報と無関係であれば、私はそれで問題はありません。多くのサイトにはセッション情報が保存されていますが、それにはリスクもありますが、少なくとも一時的なものです。 – jschorr

関連する問題