ユーザーをユーザーの名前+パスワードで管理しようと考えています。
データベースにユーザーの名前とパスワードを保存し、それを使ってログインするのはセキュリティ上駄目なことなのでしょうか。
作ろうとしているサービスはお金に関連することは全くなく、不正ログインをするメリットもなく、不正ログインされても特に困ることもないのですが、それでも単純にデータベースにパスワードを保存することは絶対にやってはいけないのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
だめです。
そもそもその程度のサイトであれば、パスワード不要にしましょう。
多くの人は、同じIDとパスワードを使い回しています(そうするなと、注意されていますが)ので、
あなたのサイトから流出したIDとパスワードで、別の重要なサイトにログインされて損失が出た場合、原因があなたのサイトからの流出だと判明すれば、「通常行うべき防御策を行っていなかった」ということで、過失があったと言うことで責任を問われ、損害賠償を求められてもおかしくありません。
「通常行うべき防御策」をきちんとやっていれば、少なくとも過失は無いです。
投稿2019/04/28 04:25
総合スコア84555
0
ベストアンサー
作ろうとしているサービスはお金に関連することは全くなく、不正ログインをするメリットもなく、不正ログインされても特に困ることもないのですが、それでも単純にデータベースにパスワードを保存することは絶対にやってはいけないのでしょうか。
そのとおり、絶対にやってはいけないことだと思います。
質問者さんの作るサイトはともかく、ユーザーが ID とパスワードを使い回していて、漏洩すると重大な問題を引き起こすことになるかもしれないということも考えるべきだと思います。
パスワードを DB に保存するなら、全ての情報が漏洩しても簡単には解読できないように、ハッシュ、ストレッチング等の手段をきちんと組み込んだ方がよさそうです。
【追伸】
参考になりそうな記事を紹介しておきます。
本当は怖いパスワードの話 (1/4)
https://www.atmarkit.co.jp/ait/articles/1110/06/news154.html
投稿2019/04/28 04:23
編集2019/04/28 04:34退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/28 04:35
0
それでも単純にデータベースにパスワードを保存することは絶対にやってはいけないのでしょうか。
「他のサービスにログインさせるためのパスワードを預かる」などの場合(これも、できればやらないほうがいいでしょう)を除けば、自分のサイトで認証を行うためのパスワードは、生の値を記憶させる必要がないものです。
PHPの標準関数にあるpassword_hash
/password_verify
の組のように、パスワードを不可逆にハッシュ化しても認証は可能です。
一方で、生のパスワードを格納していると、流出したときのリスクがあります。自サイトには「不正ログインされても特に困ることもない」のかもしれませんが、パスワードの使い回しがまかり通っている以上、流出したパスワードで他のサイトに入られて被害が出る、という事態も考えられます(適切にハッシュ化していれば、そこから元のパスワードを復元するには、辞書攻撃できる場合を除いてパスワード1つあたりに相応な計算量が必要になります)。必要もないのにそのようなリスクを抱え込むだけの合理的な理由はないでしょう。
投稿2019/04/28 04:24
総合スコア145184
0
世の中にそんなシステムは結構あるのじゃないかとは思いますが、
すべきではないでしょう。
お金に関する事が無くても、そのシステムを利用している方々の情報流出リスクがあります。そういう情報は、単独で意味無くても、他の情報と組合せる事で、意味を持つ場合が、多々あります。少なくとも、パスワード管理されていると利用者に意識されている事は、保護されいているシステムとの認識も持たれます。
責任を持って管理するならば、絶対におこなってはいけないでしょう。
最低限でも暗号化ですね。どこまでするかはリスク管理ですが、
鍵の掛かっている自転車と鍵の掛かっていない自転車のどちらが盗まれやすいかです。 また、捨てような自転車でも泥棒の足に使われる事があります。
(昔、本当に使われた、、、近くの駅にあった。)
投稿2019/04/28 04:31
総合スコア6383
0
- パスワードの安全な保存方法
https://www.deep-rain.com/web/security-web/1035
...
Twitter社がパスワードを平文でログに吐いていたという話は記憶に新しく、内部での漏洩とはいえ重大な事件として話題になりました。
...
共通のパスワードを利用しているユーザーもいるはずです。
そうなると、平文のパスワードとユーザーIDとして扱われやすいメールアドレスなどが見える状態にあるのは非常に好ましくありません。
...
たとえ内部での漏洩であったとしても、内部の人員が絶対的に信頼できるような状況でなければ大きな問題となります。
...
Webサービスやその他のアプリケーションでは、情報が漏洩したときに最もダメージが少ない手段を採択して運用していくことが唯一の解となるのです。
...
内部のシステム管理者でさえも、お客様のパスワードがわからないようにしておくことが重要です。
- パスワード保存方法の過去と現在そして未来
http://kengos.jp/2015/09/13/password.html
- Djangoはパスワードをどうやって保存しているのか
暗号化をする場合、自分でアフトリズムをつくったりせず、信頼性が高ツールを利用すべきです。
投稿2019/04/28 10:16
編集2019/04/28 10:17総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/28 04:26