タグ

passwordに関するmorygonzalezのブックマーク (7)

  • パスワード保存とソルトの話

    先日、twitterへのハッキング行為が発見された、という発表がなされました。一部のユーザのデータが漏洩したということです。 この件について個人的に懸念を感じたため、それをこちらに書いておきました。原文では encrypted/salted password と呼ばれていたものが、日語の公式ブログでは「暗号化されたパスワード」となり、これが朝日新聞では「パスワード」と表記されているという問題です。 専門知識があれば、ここにどういう違いがあるかはわかるのですが、そうでなければわからないのも無理はありません。しかし、わからないからといって省略して良いわけでもありません。パスワードと encrypted/salted password は大きく異なります。 ではどう違うのか? この話について、ひと通りの解説をしてみるのも良いのではないかな、と思ったのでしてみます。 「パスワード」は保存されない

  • AuthComponentを使いやすくするビヘイビア | へびにっき

    CakePHP 1.2 の AuthComponent はとても便利なのですが、POSTされたパスワードの値を自動的に暗号化(hash)してしまうため、ユーザの create/update を行う際のバリデーションが困難になります。そこで AuthComponent を補助する AuthModel ビヘイビアを作ってみました。 auth_model.phpgist:188066 このビヘイビアを使うことで 標準のバリデーション機能を使ってパスワード入力値を検証できるようになります 「再入力」による確認を行うための sameValue バリデータが使えるようになります データ更新時に「パスワード欄が空ならパスワードを変更しない」という動作を簡単に実現できます 以下、password カラムを備えた users テーブル(すなわち User モデル)を例に使い方を説明していきます。 まず

  • CakePHP:パスワード登録時のバリデーション: 机上の楼閣

    例によって、CakePHP1.2でのお話。 たとえばユーザー登録のページで、ユーザー名とパスワードを $form->input( 'username', array( 'label' => 'ユーザー名:' ) ); $form->input( 'password', array( 'label' => 'パスワード:' ) ); といったフォームに入力してもらう場合。 Authコンポーネントを通すとパスワードがハッシュ化されてしまうので、パスワードの文字数や使用可能文字などなどをモデルのバリデーションでチェックすることができなくなってしまう。例えパスワードが未入力でもハッシュを作ってしまうので、入力チェックさえままならない。 だが、せっかく高性能のバリデーションが使えるのだから、これを利用しない手はない。 というわけで、いろいろ試行錯誤してみたところ、どうにかよさげな解決策が出来た(らし

    morygonzalez
    morygonzalez 2010/04/08
    CakePHPでパスワードの文字列をハッシュ化前にバリデートする方法。
  • パスワードを忘れたお客様には、新規に発行するのが昔からの伝統だな。

    パスワードを忘れたお客様には、新規に発行するのが昔からの伝統だな。 忘れた人に答えられると言うことは、システム側で平文で保存していると言うことをお客様に伝えているので都合が悪い。 逆に、その会社のセキュリティを調べるために真っ先にするのは、パスワードを忘れた振りをして復元するだ。 それで平文が帰ってきた場合、セキュリティがザルだと思って良い。 そもそも、人を偽られた場合(ソーシャルハッキングをされた場合に)個人情報であるパスワードを教えた責任は、騙されたでは済まない。 教えないで、新規にランダムパスワードを設定すれば十分。にもかかわらず、元のパスワードを教えろと言ってきた場合、それは、犯罪に関わっている可能性が高いと判断して問題ない。 そういう意味では、忘れた場合に自分が設定したパスワードが平文で帰ってくるサービスはセキュリティがザルなので、使い捨てパスワードを設定しない利用者も悪いとい

    パスワードを忘れたお客様には、新規に発行するのが昔からの伝統だな。
  • CakePHP 1.2 ユーザ登録でパスワードの確認 ( ラボブログ )

    スパイスラボ神部です。 改めて AuthComponent でのパスワードの確認方法を調べてみたら、確認の方法も公式に提供されているらしいので、小さくとりあげておきます。 -CakePHP のおいしいべ方: 1.2でいろいろ ここの「3」で、password_confirm というフィールド名にすればOKらしいです。 controller 側での確認方法も、リンク先の @TheKeyboard » Blog Archive » Simple User Registration in CakePHP 1.2 に載っています。 if ($this->data['User']['password'] == $this->Auth->password($this->data['User']['password_confirm'])) { こちらにあるように、、password_comfirm

  • CakePHP:Authコンポーネント使用時のパスワード: マイペースでね!

    いきなりですがCakePHPをマスターしようと思い、始めてみました。空いている時間を見つけていろいろ引っかかった点などを書いていければと思ってます。 まず引っかかったのがパスワード。 ユーザー管理はモデル名を「User」として id:integer(pk) name:varchar(30) loginid:varchar(20) password:varchar(50) ← ハッシュ化することを考えて長めに is_admin:boolean ← 管理者区分 としました。 Authコンポーネントを利用することにしたのですが、ユーザーの変更をする際にフォームのパスワード項目に現在のパスワードをデフォルト表示するわけにも行かないので、 パスワードが記入されていれば新しいパスワードに変更。空欄なら現在のパスワードのまま と言う仕様にしました。ところがAuthコンポーネントがパスワードが空文字で送信

  • ZiSTA Cake: Authコンポーネント使用時にパスワードをハッシュ化させない方法

    若干トリッキーかも知れませんが、手っ取り早くパスワードをハッシュ化させないようにする方法です。その方法はAuthComponentのfields属性でパスワード・フィールドの名前を変更してしまう事です。AuthComponentはユーザー名とパスワードのフィールドが揃っているとパスワードの入力をハッシュ化します。 以下のコードではフォームに'password'という名前のフィールドがあっても暗号化されません。モデルでの検証を行う事が出来ます。さらに'password_confirm'というフィールドがあれば暗号化されますので、これを利用してモデル内でパスワードの入力確認を行います。 class UsersController extends AppController { function beforeFilter(){ parent::beforeFilter(); if($this

  • 1