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

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1544 closed defect (fixed)

SlavePNEで必須プロフィール項目が空でもログインできてしまう場合がある

Reported by: ebihara Owned by: ebihara
Priority: critical Milestone: OpenPNE2.10.2
Component: pne-masterslave Version: 2.8.x & 2.10.x & 2.11.x
Keywords: OpenPNE2.8.7 OpenPNE2.11.2 Cc:

Description (last modified by ebihara)

■現象

SlavePNEで必須プロフィール項目が空でもログインできてしまう場合がある。

■原因

  • ファンクションキャッシュが適切にクリアされていなかった
  • プロフィール項目の値チェックが間違っていた

■修正内容

  • ファンクションキャッシュをクリアする引数のパターンを増やす
  • プロフィール項目の値チェックにおいて、型チェックをおこなわないようにする。また、空文字列に対してmd5をかけないようにする(未入力かどうかのチェックができなくなるため)

■関連情報

  • 関連チケット:#1535

Change History (19)

comment:1 Changed 12 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

やります

comment:2 Changed 12 years ago by ogawa

Component: pne-frameworkpne-masterslave
Keywords: OpenPNE2.11.2 added

comment:3 Changed 12 years ago by ebihara

r4639でtrunkのコードに対して修正しました。

comment:4 Changed 12 years ago by ogawa

Keywords: OpenPNE2.8.7 added
Version: 2.10.x & 2.11.x2.8.x & 2.10.x & 2.11.x

2.8系も修正しましょう。

comment:5 Changed 12 years ago by ebihara

Keywords: 確認中 added
Owner: changed from ebihara to ogawa
Status: assignednew

以下のリビジョンで2.8.xと2.10.xでも修正しました。ご確認ください。

comment:6 Changed 12 years ago by ebihara

Keywords: 確認中 removed
Owner: changed from ogawa to ebihara
Status: newassigned

おっと、まだ修正します。値チェック緩くします。

comment:7 Changed 12 years ago by ebihara

Keywords: 確認中 added
Owner: changed from ebihara to ogawa
Status: assignednew

以下のリビジョンで値チェックを緩くしました。ご確認ください(コミットログのチケット番号がすべて間違ってしまいました。まじすいません)。

comment:8 Changed 12 years ago by ogawa

Keywords: 確認中 removed
Owner: changed from ogawa to ebihara

comment:9 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed

comment:10 Changed 12 years ago by kiwa

■現象

SlavePNEは必須プロフィール項目が空の場合、登録ページにリダイレクトする機能がある。

だが、必須プロフィール項目が入力済かどうかを返す db_member_check_param_inputed() という関数の値チェックが間違っている。

if (($c_membernickname? === )

($c_memberbirth_year? === )
($c_memberbirth_month? === )
($c_memberbirth_day? === )
($c_memberc_password_query_id? === )
($c_membersecure?hashed_password_query_answer? === )

) {

return 1;

}

とあるが、

  • c_member.c_password_query_id は int型であり、デフォルト値に 0 が指定されている。つまり空文字列であることは考えにくい
  • c_member_secure.hashed_password_query_answer に空文字列が指定された場合、空文字列に対して md5() をかけてしまうので、d41d8cd98f00b204e9800998ecf8427e という値になり、空文字列ではなくなる

など、問題が散見されるので、見直す。

■原因

■修正内容

■関連情報

comment:11 Changed 12 years ago by kiwa

Description: modified (diff)

すいません、descriptionの変更をするはずがコメントに書き込んでしまいました。

comment:12 Changed 12 years ago by kiwa

Resolution: fixed
Status: closedreopened

動作テストが完了していないのでテスト待ちに変更します

comment:13 Changed 12 years ago by kiwa

Keywords: 再現待ち added

キーワード忘れてました

comment:14 Changed 12 years ago by kiwa

Keywords: テスト待ち added; 再現待ち removed

キーワード間違えました

comment:15 Changed 12 years ago by kiwa

Resolution: fixed
Status: reopenedclosed

comment:16 Changed 12 years ago by kiwa

Keywords: テスト待ち removed

comment:17 Changed 12 years ago by ebihara

Description: modified (diff)

comment:18 Changed 12 years ago by ebihara

Description: modified (diff)

comment:19 Changed 12 years ago by ebihara

Description: modified (diff)
Note: See TracTickets for help on using tickets.