PHPのパスワードの保存は紆余曲折してpassword_hash関数がいいらしい

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

セキュリティ障害や、情報漏えいのニュースを見ると、エンジニアが責められる姿をどうしても想像してしまう、下駄です。
 

大規模な個人情報の漏洩はニュースになり、ユーザーは他人事のように聞いていますが、めちゃくちゃ自分が該当しているケースが結構多いという事実も報道して欲しいと思ってしまうんですが、
 

セキュリティって、重要とわかりつつ、自宅の鍵や、身の回りの防犯などは、何となく理解できますが、普通の人ではデジタルのセキュリティって、よく分からないのが現状です。
 

せいぜい、パソコンにウィルス対策ソフトをインストールする程度でしょう。

IT関連者のセキュリティ必要知識

IT会社に努めているけど、パソコンはエクセルの入力以外は何もできないという人、意外と多いようです。
 

もちろん、流暢にプログラミングが出来る必要はないのですが、比較的人数が多い会社では、情報システム部門を作って、こうしたパソコンが苦手な人に対してのヘルプデスク業務を推奨していて、社内でITレベルがアップする事は無い企業が結構多いようです。
 

自分の使っているパソコンのウィルス管理から、パスワード管理、メールやインターネットサービスを利用する時のインシデントなどは、会社に勤めていれば、セキュリティ勉強会などを行っているケースもありますが、
多くが小学生レベルと、あまり現実味のない行為ばかりです。
 

メールで添付ファイルを送信する時に、添付ファイルは、パスワード付きの圧縮をして、そのパスワードは、別メールで送信するって、どこの会社でも会社のルールで行っているのをみると、そのセキュリティの無意味さに気がついていなくてめんどくさい作業を強いられている従業員が不憫でなりません。
 

そもそも、添付メールをハックされるぐらいなら、その直後に送られるパスワードメールも合わせてハックされる程度のセキュリティ防御って、無駄ですよね。
 

パスワードはチャットやSMSなど、別送信方法で行うのであれば、極めて堅牢なのかもしれませんが・・・

プログラマーの知っておくべきセキュリティ知識

エンジニアのセキュリティレベルは、仕事においては、サービス提供するクオリティに反映されます。
 

もちろん、普段使っているパソコンから、インターネットサービスであれば、サーバーセキュリティから、ネットワークセキュリティ、サービス運用に関する手順など、あらゆる事に対して、担保しなければいけません。
 

でも、なかなか全てを網羅しているエンジニアに恵まれない会社も多いと思いますが、そうしたコンサルティングサービスを提供してる会社と契約をしてもいいかもしれませんが、エンジニアが必要最低限のセキュリティ知識をつけておくに越したことはありません。
 

もちろん、奥が深いジャンルでもありますが、実際に開発を行ってプログラミングをする際のコーディングにも、セキュリティ思想が無いと危険なケースも数多くあります。
 

そうしたインシデントや、インジェクションといった、デジタル思想も、エンジニアの重要な知識として採用時に確認したり、社内教育していく必要もあるという事ですね。

PHPのパスワード保存する文字列

この間PHPのログインシステムを作った時に、PHP5.xの時代が長かっただけに、ver7以降のパスワードセキュリティを調べてみたら、phpドキュメント自体が更新されているのを見つけました。
 

パスワードハッシュを「ソルト」という管理法でやりなさいということが数年前になっていて、この事を知らずに作業していたので、こうした情報収集がいかに重要かを思い知らされました。
 

参考 : https://www.php.net/manual/ja/faq.passwords.php#faq.passwords.fasthash
 

パスワードをデータベースに保存するシステムは、ユーザーログインする機能を持っているサイトでは、必ず存在するわけですが、そのパスワードをちゃんと管理していますか?という事です。
 

PHPコーディングでは、これまでcryptで行っていた関数も、ver5.5以上では、password_hashという関数一発で、ソルト変換してくれて、password_verify関数で、認証テストができるという便利な機能を、知らなかったので、
 

ログインシステムのパスワード保存を書き換えるように作業しました。
 

参考
password_hash
password-verify
 

非常に簡単で便利に使える関数なので、知っておいて損はないようです。
 

でも、個人的感想ですが、PHPのこうしたセキュリティコードは、バージョンがアップされる度に、こまめに書き換えられたり、使用禁止になったりすることも結構多いので、バージョンと仕様の関係には、情報収集が欠かせないでしょう。
 

ちなみに、自分の身は自分で守るをモットーにしていて、あまり他人のコードを信用しないという僕ですが、それが故に、車輪の再発明をたくさん行っている、自称「車輪再発明家」と最近言っている下駄でした。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です