PHPを使って一人で小さなウェブサービスを作っているのですが、ブラウザを閉じてもログイン状態が継続するようにするためにCookieを使おうと思います。そのとき、Cookieにユーザー名をそのまま保存するのに何かセキュリティ的な問題はあるでしょうか。「ユーザー名+適当な文字列」を暗号化するというのがよく行われているようですが、それだとデータベースのテーブルを一つ増やさないといけないのでちょっと面倒だと思っています。ちなみにログインにははてな認証APIを使うのでパスワードは自サイトでは一切扱いません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/05/07 14:08:51
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:youas No.1

回答回数11ベストアンサー獲得回数3

ポイント60pt

MD5みたいなやつで、ユーザー名+特定の文字列 で生成したものとユーザーID(あるかどうかわかりませんが)のセットをCookieに入れておいて、

Web側のアプリケーションでもユーザーIDで検索し、 ユーザー名+特定の文字列 から毎回生成して合致させれば

べつにDBにカラム1つ増やす必要もなくないですか?

※特定の文字列が判別されたらアウトですが。。

 MD5のだけCookieに入れておくと、ログイン時に全ユーザー分検索しなくちゃいけないので

 都合キーとしてユーザーID、認証のパスとしてユーザ名+特定文字列のMD5 なイメージで。



セキュリティ的な問題に関しては、公共のPCを使用した場合とか、ネットカフェのPCとか。。

いろいろあるかと思います。

オートログインを有効にするのかどうかのチェックボックスとか、

金銭が発生する、個人情報が閲覧できる 等の状況であれば、オートログイン時のみ

再度パスワードを求める とかやり方は多々あるかと思います。

PS.

セキュリティで気になってしまった時点で、もやもやしてそうなのでそのままDBカラム1個増やしてがりがりコーディングしたほうが早い きもしなくもない。

id:pha

ありがとうございます。そもそもuserを管理するDBのテーブルを作成していなかったので、テーブルを一つ増やさなければいけない、というのでちょっとめんどくさかったんですよね。

だけど指摘された通り、セキュリティが気になってきた時点で、さっさとそういう仕組みを書いてしまったほうが早い気がして結局書いてしまいました。userのテーブルもやっぱりのちのち必要になりそうな気もするしなぁ...というのもありましたし。ありがとうございましたー。

2008/05/07 14:08:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません