ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 11 years ago

Closed 11 years ago

#4033 closed enhancement (fixed)

秘密の質問を省略するモード時に、悪意のある操作を防止するための機能を更に追加する

Reported by: urabe Owned by: nagasawa
Priority: minor Milestone: OpenPNE2.14beta4
Component: 指定しない Version:
Keywords: Cc:

Description (last modified by urabe)

■概要

#3679 「秘密の質問を省略するモード」の機能で、総当りでメールアドレスを調べる、パスワードの変更が可能な点を改善するの問題があったため、#3776 で 画像認証を実装したが、携帯の対策と、メールアドレスを入力しただけで、パスワードが変更されてしまうため、画像認証に追加で以下の機能 (仕様参照) を実装する。

■仕様

注:定義) 
 秘密の質問が使用する設定 OFFの場合の機能:(SECRET ON)
 秘密の質問が使用する設定 OFFの場合の機能:(SECRET OFF)
 秘密の質問が使用する設定に関係なくすべての機能:(ALL)

・パスワード再設定の流れ (携帯、PCと共に同じ仕様)

  1. o_password_query (パスワードの再設定メールの送信)
    • (ALL) 入力されたメールアドレスが存在する場合も存在しない場合も登録されているか判断できないように同じメッセージを表示させる
    • (SECRET ON) 秘密の質問の答えとメールアドレスが一致すればパスワード再設定用メールが送信される (仕様変更なし)
    • (SECRET OFF) メールアドレスが合致すればパスワード再設定用メールが送信される
  2. パスワード再設定用のメールが送信される
    • (ALL) メールだけでパスワードの再発行を完結させず、メールに記載されたURL (ハッシュと t_encrypt されたc_member_idを含む) にアクセスして、そのアドレス先でユーザの手入力でパスワードの再設定ができる。
      • ハッシュは c_member_config に保存
      • 再設定メールのURLの有効期限は 24時間とします。
        • 再設定メールはすぐ発行できる理由と、あまり長いとセキュリティ上好ましくないため24時間としました
    • (ALL) ハッシュURLを送信するため、管理画面のメール文言「パスワード再発行メール」の修正が必要
      • (ALL) 上記の仕様に伴い、既にテンプレートを変更されている場合は、管理者側で「パスワード再発行メール」の更新をおこなってもらうよう、バージョンアップの告知に盛り込む
  3. 新しいパスワードを二回入力し、パスワードの変更が完了する
    • (ALL) パスワードの変更完了とともに DB に保存されたハッシュは削除される

■関連情報

  • 関連チケット: #3679
  • 関連チケット: #3776

Change History (45)

comment:1 Changed 11 years ago by urabe

Description: modified (diff)

comment:2 Changed 11 years ago by nagasawa

Keywords: 確認中 added
Owner: changed from nobody to nagasawa
Status: newassigned

以下のリビジョンで追加しました。

comment:3 Changed 11 years ago by nagasawa

Keywords: 確認中 removed

2.14beta3に間に合わないため今回は取り消します、以下のリビジョンで取り消しました。

comment:4 Changed 11 years ago by kiwa

Milestone: OpenPNE2.14beta4
Version: 2.14.x

comment:5 Changed 11 years ago by nagasawa

Keywords: 確認中 added

以下のリビジョンで取り込みました。

comment:6 Changed 11 years ago by shingo

確認します

comment:7 Changed 11 years ago by shingo

Keywords: 差し戻し added; 確認中 removed
  • フォーム送信後、完了画面が表示されない

comment:8 Changed 11 years ago by urabe

Description: modified (diff)

comment:9 Changed 11 years ago by shingo

  • Descriptionの「メールに記載されたハッシュ化されたURL」という箇所がおかしい
  • 「update_password_ssid」の「ssid」って何ですか?
  • if文の記述をコーディング規約に則したものにしてください
  • 権限チェックが重複している
     32         // 権限チェック
     33         if (!db_member_c_member_config4name($c_member_id, 'update_password_ssid'))
     34         {
     35             handle_kengen_error();
     36         }
     37         if (!db_member_c_member_config4name($c_member_id, 'password_ssid_query_time'))
     38         {
     39             handle_kengen_error();
     40         }
     41 
     42         $c_member_config = db_member_c_member_config4c_member_id($c_member_id);
     43 
     44         // 権限チェック
     45         if (!$c_member_config['update_password_ssid'] && !$c_member_config['password_ssid_query_time'])
     46         {
     47             handle_kengen_error();
     48         }
    
  • セッションの有効期限が3日であるのは妥当か
  • また、その旨をメールに記述しないでいいのか
  • パスワード再発行用のメール本文を既存のものを参考にしてください
  • 有効期限切れ時に表示される「パスワード再設定の有効期限」という表現が引っかかります
  • 再設定完了時に「c_member_config」から削除せずに「0」にupdateするのはなぜでしょう

comment:10 Changed 11 years ago by shingo

  • メールアドレス入力ページ(PC版)のボックスのタイトルが「パスワード再発行」になっています

comment:11 Changed 11 years ago by urabe

追記

  • メールアドレス入力ページ(PC版)で間違ったアドレスを入力すると、ログイン画面にリダイレクトする
  • page_o_password_query のバリデートファイルがない

comment:12 Changed 11 years ago by shingo

  • ?m=ktai&a=page_o_password_queryのタイトルをPC版にあわせて「パスワードの再設定」とし、それだけではわかりにくいので、適切な説明メッセージを記載してください。
  • 携帯でのメール本文が以下のようになっている
    開発PNE213からのお知らせです。
    
    パスワード再設定の要求を受け付けました。
    
    パスワード : 
    
    
    
  • 携帯メール本文について:不要な改行等がある。他のメールテンプレートにあわせて、すっきりした内容にしてください
  • 携帯版:パスワードの再設定フォームに確認用のパスワード入力がない
  • 「ハッシュメール」がよくわかりません
    webapp/lib/util/mail_send.php
    199://パスワード再発行用のハッシュメール
    
  • メッセージを適切に変更してください
    webapp/modules/ktai/do/o_password_query.php
    56	        // パスワード再発行 
    
  • 以下の箇所の表現が気になります
    webapp/modules/pc/templates/o_password_query.tpl
    15	しばらくしてもメールが来ない場合、<br /> 
    16	メールアドレスの入力に誤りがある可能性が考えられますので<br /> 
    17	再度確認の上、フォームからやり直してください。 
    

comment:13 Changed 11 years ago by shingo

$is_send の値を見て、入力フォームのアクションで完了ページも表示しようとしていますが、分けたほうがいいです

comment:14 Changed 11 years ago by urabe

Description: modified (diff)

comment:15 Changed 11 years ago by nagasawa

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。

comment:16 Changed 11 years ago by shingo

  • 「do_password_url_query_mail_send()」だと意味がわからないのでご再考ください(携帯も同様)
  • 「m_pc_password_url_query」というテンプレート名も同様です(携帯も同様)

comment:17 Changed 11 years ago by shingo

  • 必須ではないですが、「=>」の位置をそろえるのかそろえないのかをはっきりしたほうがよいと思います
    webapp/lib/util/mail_send.php
     258     $params = array(
     259         'c_member'  => $c_member,
     260         'session'  => $new_password,
     261         'id'   => $id,
     262         'login_url' => $login_url, 263         'update_password_url' => $update_password_url,
     264     );
    
  • 以下の箇所の必要性はどうでしょうか?
     32         // 権限チェック
     33         if (!db_member_c_member_config4name($c_member_id, 'update_password_ssid'))
     34         {
     35             handle_kengen_error();
     36         }
     37         if (!db_member_c_member_config4name($c_member_id, 'password_ssid_query_time'))
     38         {
     39             handle_kengen_error();
     40         }
    
  • <br>の位置を再確認
    webapp/modules/ktai/templates/o_update_password.tp
    
  • 「パスワード再設定用URLの送信」という表示が直っていない
  • メッセージの推敲
    webapp/modules/pc/templates/o_password_query.tpl
    

comment:18 Changed 11 years ago by shingo

Keywords: 差し戻し added; 確認中 removed

comment:19 Changed 11 years ago by nagasawa

Keywords: 確認中 added; 差し戻し removed

comment:20 Changed 11 years ago by nagasawa

上記リビジョンで修正しました。

comment:21 Changed 11 years ago by shingo

Keywords: 差し戻し added; 確認中 removed

webapp/modules/pc/templates/o_password_query.tpl に不要な記述が残っています

comment:22 Changed 11 years ago by shingo

  • 以下のリダイレクト先は正しいですか?
    webapp/modules/ktai/do/o_password_query.php
     51                 openpne_redirect('ktai', 'page_o_login', $p);
    

comment:23 in reply to:  22 Changed 11 years ago by shingo

Replying to shingo:上記の件は良しとします

comment:24 Changed 11 years ago by shingo

  • if文を規約にあわせてください
    webapp/modules/ktai/do/o_password_reset.php
     28         // 権限チェック
     29         if (!db_member_c_member_config4name($c_member_id, 'password_reset_sid'))
     30         {
     31             handle_kengen_error();
     32         }
     33         if (!db_member_c_member_config4name($c_member_id, 'password_sid_query_time'))
     34         {
     35             handle_kengen_error();
     36         }
    

comment:25 Changed 11 years ago by shingo

c_member_configに入る「password_sid_query_time」という値がわかりづらい

comment:26 Changed 11 years ago by shingo

config.php.sampleの「_OPENPNE_SSL_REQUIRED」に今回追加したアクションを追加すべきです

comment:27 Changed 11 years ago by nagasawa

以下のリビジョンで修正しました。

修正内容

  • 不要な記述の削除
  • コーディング規約に沿っていなかったif文の修正
  • password_sid_query_timeをpassword_reset_sid_timeを変更
  • SSLにパスワード再設定ページを追加

comment:28 Changed 11 years ago by nagasawa

Keywords: 確認中 added; 差し戻し removed

comment:29 Changed 11 years ago by nagasawa

SSLのページ追加がコミットされていませんでしたので以下のリビジョンで追加しました。

comment:30 Changed 11 years ago by shingo

Keywords: テスト待ち added; 確認中 removed

comment:31 Changed 11 years ago by imamura623

Keywords: テスト待ち removed

気になる点

  • page_o_password_queryの画面で「パスワード再設定」という名前は誤解があるのでは?
  • パスワード再設定メール送信完了画面で”しばらくしてもメールが来ない場合”とあるがある程度の時間指定があった方が良いのでは?
  • ”フォームからやり直してください。”という文面ですが最初からやり直してくださいといった方がわかりやすいのでは?

バグ

  • SNSに登録されていないメールアドレスを記入しパスワードを再発行しようとするとメッセージ無しのページに遷移する

comment:32 Changed 11 years ago by imamura623

追加

  • ktai_page_o_password_resetの見出しのカタカナが全角になっています

comment:33 Changed 11 years ago by urabe

追記

  • タグの閉じ忘れで page_o_password_query_end のフッターの位置が崩れる

comment:34 Changed 11 years ago by urabe

追記

  • page_o_password_query_end のsimpleBoxのなかにalertBoxがある

comment:35 Changed 11 years ago by urabe

r12104 でコミットしました。

  • メールアドレスが間違っている場合、h_homeにリダイレクトする問題を修正
  • パスワード再設定 を パスワード再設定のリクエストに修正
  • 文面が抽象的なため、少し具体的に修正
  • 携帯ページの全角カタカナを半角に修正
  • 再設定送信後の画面がアラートボックスになっていたのを、シンプルボックスに修正
  • メールアドレスの形式をチェックするように修正

comment:36 Changed 11 years ago by urabe

Keywords: 確認中 added

trunk と 2.14 はそれぞれ以下のリビジョンとなります。

comment:37 Changed 11 years ago by urabe

以下のリビジョンで再度コミットしました。

comment:38 Changed 11 years ago by shingo

Keywords: 差し戻し added; 確認中 removed

webapp/modules/pc/templates/o_password_query.tpl に「パスワード再設定のリクエスト」があります

comment:39 Changed 11 years ago by urabe

以下のリビジョンでコミットしました。

comment:40 Changed 11 years ago by shingo

Keywords: テスト待ち added; 差し戻し removed

確認しました

comment:41 Changed 11 years ago by imamura623

Keywords: 差し戻し added; テスト待ち removed
  • page_o_password_queryの見出しのカタカナが全角になっています

comment:42 Changed 11 years ago by urabe

コミットしました。

comment:43 Changed 11 years ago by shingo

Keywords: テスト待ち added; 差し戻し removed

確認しました

comment:44 Changed 11 years ago by imamura623

Keywords: テスト待ち removed

動作テストしました。不具合は修正され問題無しと判断します。
以上でこのチケットを閉じます。

comment:45 Changed 11 years ago by imamura623

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.