2012-04-05 7 views
0

私は現在自分自身のログインスクリプトを構築しており、セッションIDやログアウトページと同様のものをget変数として追加していることに気付いています。なぜPHPログインスクリプトはGET IDを使ってログアウトするのですか?

なぜこれを行うのですか?

logout.phpのセッションを破棄してIDを渡すだけでは安全ではないですか?

+1

あなたはログアウト時にのみ行っていると思いますか?ほとんどのサイトでは、get要求にsessidを追加して、Cookieを無効にした(または許可しない)場合にセッションが永続することを保証しています。 –

+0

ログアウトページだけでなくすべてのページであれば、クロスサイトスクリプトの偽造リスクを軽減するための手段です。それについての詳細はこちら:http://en.wikipedia.org/wiki/Cross-site_request_forgery – Sahand

答えて

1

ログアウト時にのみgetパラメータを追加する必要がある理由は考えられません。

URLにトークンを追加すると、prevent abuseに、またはセッションIDをURLに追加してクライアント側でクッキーが消えたときにセッションが動作するようにすることができます。

更新

linked articleから:

ただし、ファイルのクイックビューはかなり興味深い問題を示しています。それはログインして計算された署名がユーザに提示されてログインページに提出されることを要求する。 おそらく、これはCSRF保護の形式として行われました。 しかし、ユーザーにセッションを引き継ぐのに必要なデータもリークします。だから我々はこれまで、当社の第11回脆弱性に来る:

アップデート2

私はircmaxell in chatを求めてきました。そしてそれはCSRF保護のためです。

+0

この男が見直している例があります: - http://blog.ircmaxell.com/2011/08/security-review -creating-secure-php.html –

+0

@StephenAdrianRathbone彼は[チャット](http://chat.stackoverflow.com/rooms/11/php)でアイドリングしていますので、直接ソースに行かないでください:) – PeeHaa

関連する問題