プロジェクト

全般

プロフィール

Bug(バグ) #2647

携帯個体識別番号の登録を必須にしても、メールアドレスを変えると同一の個体識別番号でも何度も登録が出来てしまう

pnetan  12年以上前に追加. 8年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Urgent(急いで)
担当者:
対象バージョン:
開始日:
2011-12-01
期日:
進捗率:

100%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

概要

携帯個体識別番号の登録を必須にしても,メールアドレスを変えると同一の個体識別番号でも何度も登録が出来てしまう.
OpenPNE 2 系では新規登録時に携帯の個体識別番号の重複登録は認められていないため,OpenPNE 3 でも同様の処理を行う必要がある.

原因

下記コードで個体識別番号が必須の場合に個体識別番号がリクエストで渡されているかのチェックとブラックリストに登録されているかのチェックは行われているが,登録しようとしている個体識別番号がすでに存在しているかどうかのチェックが行われていない.

lib/form/opAuthRegisterForm.class.php

129   public function validateMobileUID($validator, $values, $arguments = array())
130   {
131     if (!opConfig::get('retrieve_uid'))
132     {
133       return $values;
134     }
135 
136     if (sfConfig::get('app_is_mobile', false))
137     {
138       $request = sfContext::getInstance()->getRequest();
139       $uid = $request->getMobileUID(false);
140       if (!$uid && opConfig::get('retrieve_uid') >= 2)
141       {
142         throw new sfValidatorError($validator, 'A mobile UID is required. Please check settings of your mobile phone and retry.');
143       }
144       elseif (Doctrine::getTable('Blacklist')->retrieveByUid($uid))
145       {
146         throw new sfValidatorError($validator, 'A mobile UID is invalid.');
147       }
148 
149       $cookieUid = sfContext::getInstance()->getResponse()->generateMobileUidCookie();
150       if ($cookieUid)
151       {
152         $values['mobile_cookie_uid'] = $cookieUid;
153       }
154 
155       $values['mobile_uid'] = $uid;
156     }
157 
158     return $values;
159   }

修正案

すでに登録されている個体識別番号を登録しようとしたときに例外を投げるように修正.

diff --git a/apps/mobile_frontend/i18n/messages.ja.xml b/apps/mobile_frontend/i18n/messages.ja.xml
index 7a64c1e..b29ff74 100644
--- a/apps/mobile_frontend/i18n/messages.ja.xml
+++ b/apps/mobile_frontend/i18n/messages.ja.xml
@@ -1235,6 +1235,10 @@
         <source>Block access from the selected member with input MemberID.&lt;br /&gt; MemberID is written at the end of member top page URL.&lt;br /&gt; ex. The MemberID is 1 when the URL "http://sns.example.com/member/1"</source>
         <target>メンバーIDを入力して特定のメンバーからのアクセスをブロックします。&lt;br /&gt;メンバーIDは相手トップページのURL末尾に表示されています。&lt;br /&gt;例:"http://sns.example.com/member/1" というURLである場合にはメンバーIDは1になります。</target>
       </trans-unit>
+      <trans-unit id="">
+        <source>A mobile UID was already registered.</source>
+        <target>その携帯電話の個体識別番号はすでに登録されています。</target>
+      </trans-unit>
     </body>
   </file>
 </xliff>
diff --git a/lib/form/opAuthRegisterForm.class.php b/lib/form/opAuthRegisterForm.class.php
index eea1713..57686f3 100644
--- a/lib/form/opAuthRegisterForm.class.php
+++ b/lib/form/opAuthRegisterForm.class.php
@@ -145,6 +145,10 @@ abstract class opAuthRegisterForm extends BaseForm
       {
         throw new sfValidatorError($validator, 'A mobile UID is invalid.');
       }
+      elseif (Doctrine::getTable('MemberConfig')->retrieveByNameAndValue('mobile_uid', $uid))
+      {
+        throw new sfValidatorError($validator, 'A mobile UID was already registered.');
+      }

       $cookieUid = sfContext::getInstance()->getResponse()->generateMobileUidCookie();
       if ($cookieUid)

元記事

http://sns.openpne.jp/communityTopic/7794 より転記

お世話になります。
OpenPNE3.6.0を利用しております。
管理画面から『携帯個体識別番号の登録を必須にする』を設定しておりますが、メールアドレスを変えれば同一の固体識別番号でも何度も登録が出来てしまうようです。
特定のファイルを少し修正すれば固体識別番号の重複が防げそうですが、あまりにもファイル数やディレクトリ構造が複雑すぎて自力で出来そうもありません。
どなたか複アカの防止が出来る方、ご教示頂けると幸いです。
よろしくお願い致します。
PHP 5.2.17
MySQL 5.5.17
linux

関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #2663: 携帯個体識別番号の登録を必須にしても、メールアドレスを変えると同一の個体識別番号でも何度も登録が出来てしまう Fixed(完了) 2011-12-01
関連している OpenPNE 3 - Backport(バックポート) #2664: 携帯個体識別番号の登録を必須にしても、メールアドレスを変えると同一の個体識別番号でも何度も登録が出来てしまう Fixed(完了) 2011-12-01
関連している OpenPNE 3 - Backport(バックポート) #3045: 携帯個体識別番号の登録を必須にしても、メールアドレスを変えると同一の個体識別番号でも何度も登録が出来てしまう Fixed(完了) 2011-12-01

関係しているリビジョン

リビジョン 48d4efec (差分)
Yuya Watanabe12年以上前に追加

(fixes #2647) fixed not to register already set MobileUID

履歴

#1 pnetan  12年以上前に更新

以下バージョンで再現確認できました。

  • OpenPNE 3.6.0
  • OpenPNE 3.4.17

#2 Kousuke Ebihara12年以上前に更新

  • 優先度Normal(通常) から Urgent(急いで) に変更
  • 対象バージョンOpenPNE 3.7.0 にセット

#3 Kousuke Ebihara12年以上前に更新

  • 題名携帯個体識別番号の登録を必須にしても、メールアドレスを変えると同一の固体識別番号でも何度も登録が出来てしまう から 携帯個体識別番号の登録を必須にしても、メールアドレスを変えると同一の個体識別番号でも何度も登録が出来てしまう に変更

#4 Yuya Watanabe12年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Yuya Watanabe にセット

#5 Yuya Watanabe12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 48d4efec2f5785701fceb52638443bc15187497d で適用されました。

#6 Yuya Watanabe12年以上前に更新

  • 説明 を更新 (diff)

#7 Yuma Sakata12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

テスト実施しましたが、気になる点がありましたので確認お願いします。

メンバー登録時の携帯個体識別番号取得設定を「携帯登録時に携帯個体識別番号を取得する(任意)」に設定して、携帯個体識別番号を送信しないで、メールアドレス変更して再登録動作して確認

  • 試験手順
    0. SNS設定 (携帯関連設定)ページ(/pc_backend.php/sns/config/category/mobile)で「携帯登録時に携帯個体識別番号を取得する(任意)」設定にしておく
    1. 携帯メールアドレスにSNS招待状を送信する
    2. プロフィール項目入力後、携帯個体識別番号を送信しないでSNS新規登録する
    3. キャリア側でメールアドレス変更する
    4. 手順3 の携帯メールアドレスにSNS招待状を送信する
    5. プロフィール項目入力してSNS新規登録する
  • 試験結果
    「その携帯電話の個体識別番号はすでに登録されています。」とエラーが出てSNS登録できない
  • 修正方針
    携帯個体識別番号を送信しない場合、SNS登録できるように修正お願いします。
  • 備考
    3.4 の場合、SNS登録に失敗するとハッシュ化された値が秘密の質問への答えに表示されます。

#8 Yuya Watanabe12年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更
  • 進捗率50 から 0 に変更

#9 Yuya Watanabe12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

note-7について

管理画面で「携帯登録時に携帯個体識別番号を取得する(任意)」という選択肢がありますが,これは個体識別番号の取得を任意で行うという意味ではなく,個体識別番号を取得できない場合に関して SNS 側で登録の完了を是とするか非とするかという話となります.また,note-7では「携帯個体識別番号を送信しない」と記述されていますが,これはおそらくDocomoの端末での話であり,「送信しない」となるのはutnが送信されないだけでiモードIDは送信されており,これを個体識別番号として扱っているため,挙動としてはnote-7は正しいといえます.新規登録時にはutnを個体識別番号として用いているわけではないため,ここでutnを必要とする点については修正を行う必要があります.これについては別チケットで対応します.

#10 Kousuke Ebihara12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#11 Shouta Kashiwagi約12年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更
  • 3.6 で発生するかUnknown (未調査) にセット
  • 3.4 で発生するかUnknown (未調査) にセット

テストOKです。ただし、テスト中に以下の問題を発見し、それを回避した状態でテストしています。

  • #2860 携帯版において、携帯メールアドレスが登録されていない状態では携帯メールアドレス設定ができない

#12 kaoru n8年以上前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

他の形式にエクスポート: Atom PDF