4

私がCakePHPのまったくの初心者であるとしましょう。さらに、このチュートリアルで書かれたとおりにユーザー認証を書いたと仮定しましょう(間違いを除いて、理解するのに 1 時間以上も無駄になりました)。

2.3の移行ガイドにbcryptは、コア ハッシュ アルゴリズムに追加されたことが記載されています。これを実際に達成する方法に関する唯一のヒントは次のとおりです。

$authenticate 配列で Blowfish を使用して、bcrypt パスワードを使用できるようになりました。

これが何を意味するのか、ここで bcrypt をどのように使用できるのか、まったくわかりません。それをグーグルで検索してもガイドが表示されるだけで、ガイドは表示されません。私のセットアップが上記のチュートリアルのようであると仮定して、これをどのように正確にアクティブ化できるかを知りたいです-オプションをどこに配置し、何を書いて機能させるか。

また、これには特別なバージョンの PHP が必要ですか、それとも CakePHP でサポートされているもので動作しますか?

ありがとうございました。

4

2 に答える 2

4

まだ安定していないコード (2.3 は RC です) を使用する場合、ドキュメントは恐ろしく、ドキュメントなしでいくつかのことを理解する必要があります。ドキュメントはありませんが、コードは自由に利用でき、コメントがあります

Blowfish には、使用する必要がある独自のAuth アダプターがあります。

テストは何百もの例を提供するため、ドキュメントが役に立たない場合は、テストを表示することもできます。ドキュメントよりもはるかに優れています。

于 2012-12-13T00:06:25.333 に答える
3

すでにフォーム認証を正常に使用している場合は、認証アダプターとして交換'Form''Blowfish'ます。つまり、

class AppController extends Controller {
    public $helpers = array("Html","Form", "Js", "Csv");
    public $components = array(
           'Auth' => array(
                'authenticate' => array(
                    'Blowfish' => array(/* your settings */) 
                )
            )
        );
        /* ... */
    }

次に、呼び出しを変更する必要がありますAuthComponent::password(おそらく User モデルの でチュートリアルに従った場合beforeSave)

AuthComponent:password($pwd)

Security::hash($pwd,'blowfish');

AuthComponent の password メソッドは Security.salt 設定を使用するように実装されているため、blowfish では機能しません (新しいソルトが生成され、パスワード ハッシュに保存されます)。

また、CakePHP の実装では、PHP 5.3.7 より前にセキュリティ上の問題があった $2a$ をソルトの前に付けることにも注意してください (この注を参照)。

于 2013-01-26T16:28:23.607 に答える