パティスリータツヤササキのマカロン。八王子の人気焼き菓子店の名物です[/caption]
WordPressやXOOPS Cubeでログインするときのパスワードを忘れてたときはちゃんと、パスワードを忘れた方はこちら、的なリンクがありメールが送られてくるのでそれに従ってという救済措置があります。
仕事でCMSをいじっていると「ローカルなのでメールが送れない」ということや、お客さんやユーザーさんに「どうしてもメールも受け取れないし、パスワードも思い出せない」という状況が発生することがあります。
そんなときにどうしたらいいのか?について書いてみました。
そもそも、パスワードって知ることが出来ない→パスワードを忘れたら再度設定
WEBサイトを管理していて時々、「パスワードを忘れちゃったんで教えてください」と聞かれるときがあります。けれども今時のCMSではデータベースを見ることができる管理者でもパスワードは知ることが出来ないように、暗号化された形で保存されていますので教えることができません。
どうしてかというと、通常の項目はそのままデータベースに保存されていますが、パスワードがそのように「データベースさえ見ることが出来ればパスワードも全部見える」形で保存されていると、セキュリティ的に問題があるからです。
余談ですが、時々ネットで話題になる、会員情報流出のようなニュースで「パスワードを平文で保存してるとは何事か」的な報道がありますが、その「平文」とは 暗号化していないそのままの文字情報 ということです。そういう形でシステム化されてしまう企業もまれにあるようです。
ということで今回取り上げるWordPressもXOOPS Cubeもパスワードは復号化(元に戻すこと)できない形で暗号化されて保存されています。そのため、データベースを見ることができてもパスワードが何か分からないので、忘れてしまったなどのときは「パスワードを再度設定」することになります。
XOOPS Cubeの場合
XOOPS Cubeの場合、パスワードは MD5 という種類のハッシュ関数が使われています。パスワードを忘れてしまった場合は、パスワードをMD5化したものでデータベースを書き換えます。
プレフィックス_users テーブルを開き、
パスワードを再設定したいユーザーのところで編集をクリックします。
pass という項目がパスワードなので、その行の真ん中にあるリストボックスをクリックして MD5 を選択します。
テキストボックスに再設定したいパスワードを入れて、実行するをクリックしてデータを更新します。これで新しいパスワードが再設定されました。
WordPressの場合
調べてみたところ、WordPressのパスワードは
バージョン2.5以降:phpass
バージョン2.5より前:MD5
という形で保存されていると言うことでした。今現在は当然2.5より後なのでphpassという形で保存されています。phpassは簡単に暗号化できるものではないようで、phpmyadminでその種類も出てこないし、プログラムで作ることも考えたのですがとても面倒そうだったので(^_^;、どうしようかなと思ったのですが解決しました。
実は、wp_usersのuser_passという項目をXOOPS Cubeの場合と同じようにMD5で設定し直せば新しいパスワードでログイン出来ました。
面白いのは設定した直後は、
このように、MD5で保存されているのに一度ログインすると
このようにphpassで保存し直されていることです。想像ですが、以前の2.5以前のサイトを2.5以降にアップデートしたときにログイン出来ないと困るからこのようになってるのではないかなと思いました。
将来的にはこの仕組みがなくなっちゃうかもしれませんが、今はまだこの形で、パスワードを忘れたときに再設定ができるようです。
コメント
コメント一覧 (1件)
[…] ここを参考に変更しました。 […]