sql >> データベース >  >> RDS >> Mysql

このユーザー認証方法の弱点は何ですか?

    自分に有利に働き、標準ライブラリを使用してください パスワードをハッシュするため。

    セキュリティは、ほとんどのプログラマーが単独で取り組むよりもはるかに複雑で、目に見えない失敗の可能性がある傾向があるため、標準ライブラリを使用するのが、ほとんどの場合、最も簡単で最も安全な(唯一ではないにしても)利用可能なオプションです。

    標準ライブラリ
    以下をご覧ください:ポータブルPHPパスワードハッシュフレームワーク phpass 必ずCRYPT_BLOWFISHを使用してください 可能であればアルゴリズム。

    phpass(v0.2)を使用したコードの例:

    require('PasswordHash.php');
    
    $pwdHasher = new PasswordHash(8, FALSE);
    
    // $hash is what you would store in your database
    $hash = $pwdHasher->HashPassword( $password );
    
    // $hash would be the $hashed stored in your database for this user
    $checked = $pwdHasher->CheckPassword($password, $hash);
    if ($checked) {
        echo 'password correct';
    } else {
        echo 'wrong credentials';
    }
    

    PHPassは、いくつかの非常によく知られているプロジェクトに実装されています:

    • phpBB3
    • WordPress2.5以降とbbPress
    • Drupal 7リリース(Drupal 5および6で利用可能なモジュール)
    • その他

    良い点は、詳細について心配する必要がないことです。これらの詳細は、経験豊富な人々によってプログラムされ、インターネット上の多くの人々によってレビューされています。

    あなたが「私は自分でやる、ありがとう」に行くなら、あなたが何をするにしても 'アプローチ、 MD5を使用しないでください もう 。これは優れたハッシュアルゴリズムですが、セキュリティ上の理由で完全に壊れています

    現在、crypt を使用しています 、CRYPT_BLOWFISHを使用するのがベストプラクティスです。
    PHPのCRYPT_BLOWFISHは、Bcryptハッシュの実装です。 BcryptはBlowfishブロック暗号に基づいており、アルゴリズムを遅くするために高価なキー設定を利用しています。

    パスワードストレージスキームの詳細については、Jeff もご覧ください。 `それに関するブログ投稿:パスワードを誤って保存している可能性があります



    1. 便利なPHPデータベースクラス

    2. データベースのレコードを自動更新するにはどうすればよいですか?

    3. SQLServerクラスターをセットアップするための9つのヒント

    4. Redshift / Postgresで、条件を満たす行をカウントする方法は?