ただの hash なら、md5 で password は 5f4dcc3b5aa765d61d8327deb882cf99 ですね(Google で 15,300 件ヒット)。サーバーのデータベースにもし生のパスワードが入ってたら大笑いですが、どんなにアホでもサーバーの責任を回避する手段として、サーバー側が解読できるパスワードなんて保存しないというか、誰が考えてもしたく無いです。
<?php print hash_hmac("md5","password","lightbox") . "\n"; //0b8d1a7cf74154638a19eb9958b8e475 print hash_hmac("md5","password","2014") . "\n"; //27ad87de8ac47d30710f9144ba48d7fa ?>
よく、パスワードを忘れたら新しいパスワードを入力します。たまーーにパスワード送って来るシステムがありますが、暗号化してデータベースに保存しているのでしょう。余程運用に自信があるか、そこまでしてもメリットのあるサービスが運営されているはずです。
<?php session_start(); header( "Content-Type: text/html; Charset=utf-8" ); header( "pragma: no-cache" ); header( "Expires: Wed, 31 May 2000 14:59:58 GMT" ); header( "Cache-control: no-cache" ); // 日本語 if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { if ( hash_hmac( 'sha256',$_POST['pass'], "himitsu" ) == 'a15c6fe4973d69106646f5304c44a03ef41490d964e9bcca4f0848431b9cfe0b' ) { $_SESSION['login'] = 'yes'; header('Location: http://localhost/web/1008/005/control.php'); exit(); } } //print "<pre>"; //print_r($_SERVER); //print "</pre>"; ?> <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> </head> <body> <form method="post"> <input type="password" name="pass"> <input type="submit" name="send"> </form> </body> </html>
ですから、パスワードが盗まれるのはこういう経路ではなく、フィッシング詐欺です。 フィッシング詐欺の出発点は、メールから内容で不安感を煽って直接パスワードを入力させるもので、向こう側でそのパスワードがダイレクトに手に入ります。普通は気が付きますが、中には気がつかない人も居るわけで、悪い奴はハナからそういう人を狙ってます。 しかし、もっとあくどいのが、スパイウェアでして、こいつにやられたらキー入力とか全部バレたりするので正しい処理をしていてもパスワードが盗まれます。 実際は、銀行側の機能で対処します オンラインバンキングでは、一時パスワードを処理毎に発行できるようになるのが普通で、楽天銀行だとお金を移動するのに、3つのパスワードと2つの一時パスワードが必要です。そこまでしてて盗まれたらお手あげですが、そもそもオンライン銀行にバカみたいに高額のお金を置かなければいいので、取引銀行の機能としてオンラインバンキングするのでは無く、オンラインバンキング専用の銀行を別に用意すればいいですね。 セキュリティキーボード 毎回変換配置の変わるキーボードですね。マウスでクリックするのが普通ですが、毎回変わるのでキーボードでもかまわないという特徴もあります(a と入れたい場合に x だったり 8 だったり)。これを使うと悪者はお手上げのはずです。 ワンタイムパスワードの送り先 ハードを借りるという単純なものもありますが、インターネットだとメールアドレスに送ったりするものもあります。その場合、携帯やスマホへ送るようにすれば、やはり悪者はお手上げです。
|
【PHPの最新記事】
- PHP で cURL はオプションが全て。いろいろあるので、ちょっとまとめ【2014/7/31の記事】
- PHP : 画像を返す処理( readfile ) と画像を縮小する処理( GD )
- PHP における標準的なテスト用アップロードのテンプレート
- PHP : MySQL から JSON 文字列を返す自作(テスト用) API テンプレート
- ImageMagick を Windows(32ビット)の PHP で利用する
- PHPで、ベタベタな日付チェック。汎用的とも言うw
- PHP でカタカナのフリガナ入力のチェック
- TCPDF で罫線を引く
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成
- PHP + GD : 四角形への DropShadow
- PHP : ログインとブラウザの当日日付データ
- すごく当たり前の事なんですが、UTF-8N で保存されたテキストファイルをメモ帳で変更して保存したら先頭に EF BB BF という爆弾が仕掛けられるのでダメですよ
- 5秒毎にリロードする PHP ページ
- 実用的かどうかは置いておいて、修正画面の日付入力に jQuery のカレンダーを使用する
- PHPで使用する為にフォント(.TTC)の分解
- PHP : GD で Windows のビットマップを扱う
- 【PHP】 <?=$value?> ではない変数埋め込み手法
- PHPでサービス停止( extension=php_com_dotnet.dll )
- PHP : コマンドライン php(cli) で10進数と16進数の変換