• ベストアンサー

メールにDBのIDを表示する危険性

ユーザーの会員登録認証用メールに、そのユーザのDBのレコードの ID(MySQLのAUTO_INCREMENTの値)を表示しようとしたところ、上司 からセキュリティの危険性を指摘されました。 自動採番のIDをメールに表示することは、危険なのでしょうか? メールには、ランダム生成の文字列も格納してあり、本人認証はそちらで 行うようにしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • NARH
  • ベストアンサー率82% (88/107)
回答No.2

> ええと、IDはURLのパラメータではなく、メール本文に「あなたはNo.○○○です」というふうに、表示するだけです。URLのパラメータで送るのは、ランダム生成の文字列のみです。 > > 単なる数字であるIDがネットに流れるだけでも、危険性があるのでしょうか? なるほど、そういうことであれば、セキュリティテストをパスしている前提で、メールに記述することがマズイということはなさそうです。 逆に運用上必要だったりとか? ユーザを識別するためにお客様番号を通知すること自体は良くあることですね。 ん?でも、これは会員登録時のIDですよね?これはそのままシステム内の会員IDになったりするんですか? といいますか、会員登録をするときの、メールを入力→メール送信→メールのURLをクリック→会員情報入力のような流れのメールだと思っていたのですが、認識が違いますでしょうか? そうであれば、そもそもここで会員No.って、どういうシチュエーションで必要になるのでしょう? そうでなくて、会員登録完了後の「会員登録ありがとうございました。」のメールで、「あなたの会員No.は◯◯◯です。このメールは大切に保存しておいてください」的なものでしたら、運用上必要になる場合もあり得ると思います。 (その時も前後を推測しにくい、システム上のIDとはことなる”お客様ID”だったら素敵。単純に通番だと、サイトの会員数がバレたりとか。。) ですが、その場合は安易にログイン出来てしまうURLは必要なのかなと思います。 このページからログインしてくださいのURLなら理解できるのですが。 もし、運用を考えて特に必要ではないという情報でしたら、積極的に公開して攻撃をしたいと思っている人に材料を与える必要はない。という意味で上司の方の仰っている事も理解できなくはないです。 さて、そのメールで必須な情報とはなんでしょう? #あっ。なんかデジャヴってます。

LFNAtacker
質問者

お礼

詳しく解説をいただき、ありがとうございます。 メールに番号を記載したかったのは、運用上必要になる「かもしれない」程度の理由なんです、現時点では。 「外部に流すシステムの情報は、なるべく少なくする」という原則は、守った方がよさそうですね。 ありがとうございました。

その他の回答 (1)

  • NARH
  • ベストアンサー率82% (88/107)
回答No.1

IDとパスワード替わりのランダムな文字列で認証。 IDとそれに対応する文字列を推測しなければいけないので、2つの要素があるので困難だろうという作戦でしょうか? 会員登録認証用とのことですから、ユーザの個人情報はまだ未入力で、情報の漏洩はまだないということかな? でも、そのユーザのIDというよりは、IDに対応するパラメータ名が漏洩することの方が怖いと思います。 IDのパラメータ名=数値 ってのがバレルと、各URLにそのパラメータ名=<なんか値>を片っ端から試す輩が出てきます。 IDはDBに流れると推測できるので、ID=の後にSQLをいろいろ書いてみるとか。 怖くないですか?

LFNAtacker
質問者

補足

>NARHさん ご回答ありがとうございます。 ええと、IDはURLのパラメータではなく、メール本文に「あなたはNo.○○○です」というふうに、表示するだけです。URLのパラメータで送るのは、ランダム生成の文字列のみです。 単なる数字であるIDがネットに流れるだけでも、危険性があるのでしょうか?

関連するQ&A