Changeset 19986 for branches/version-2_5-dev/data
- Timestamp:
- 2011/01/19 19:47:07 (13 years ago)
- Location:
- branches/version-2_5-dev/data
- Files:
-
- 12 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/SC_Customer.php
r19860 r19986 51 51 52 52 // パスワードが合っていれば顧客情報をcustomer_dataにセットしてtrueを返す 53 if ( sha1($pass . ":" . AUTH_MAGIC) == $data['password'] ){53 if ( SC_Utils_Ex::sfIsMatchHashPassword($pass, $data['password'], $data['salt']) ) { 54 54 $this->customer_data = $data; 55 55 $this->startSession(); … … 150 150 151 151 // パスワードが合っている場合は、顧客情報をcustomer_dataに格納してtrueを返す。 152 if ( sha1($pass . ':' . AUTH_MAGIC) == @$data['password']) {152 if ( SC_Utils_Ex::sfIsMatchHashPassword($pass, $data['password'], $data['salt']) ) { 153 153 $this->customer_data = $data; 154 154 $this->startSession(); -
branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php
r19892 r19986 46 46 47 47 foreach ($arrRegistColumn as $data) { 48 if ($data["column"] != "password" ) {48 if ($data["column"] != "password" && $data["column"] != "reminder_answer" ) { 49 49 if($array[ $data['column'] ] != "") { 50 50 $arrRegist[ $data["column"] ] = $array[ $data["column"] ]; … … 61 61 62 62 //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない) 63 if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 63 $salt = ""; 64 if ($array["password"] != DEFAULT_PASSWORD) { 65 $salt = SC_Utils_Ex::sfGetRandomString(10); 66 $arrRegist["salt"] = $salt; 67 $arrRegist["password"] = SC_Utils_Ex::sfGetHashString($array["password"], $salt); 68 } 69 if ($array["reminder_answer"] != DEFAULT_PASSWORD) { 70 if($salt == "") { 71 $salt = $objQuery->get("salt", "dtb_customer", "customer_id = ? ", array($array['customer_id'])); 72 } 73 $arrRegist["reminder_answer"] = SC_Utils_Ex::sfGetHashString($array["reminder_answer"], $salt); 74 } 75 64 76 $arrRegist["update_date"] = "NOW()"; 65 77 … … 82 94 83 95 //-- パスワードの更新がある場合は暗号化 84 if ($array["password"] != DEFAULT_PASSWORD){ 85 $array["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 96 $salt = ""; 97 if ($array["password"] != DEFAULT_PASSWORD) { 98 $salt = SC_Utils_Ex::sfGetRandomString(10); 99 $array["salt"] = $salt; 100 $array["password"] = SC_Utils_Ex::sfGetHashString($array["password"], $salt); 86 101 } else { 87 102 unset($array["password"]); 103 } 104 if ($array["reminder_answer"] != DEFAULT_PASSWORD) { 105 if(is_numeric($customer_id) and $salt == "") { 106 $salt = $objQuery->get("salt", "dtb_customer", "customer_id = ? ", array($array['customer_id'])); 107 } 108 $array["reminder_answer"] = SC_Utils_Ex::sfGetHashString($array["reminder_answer"], $salt); 88 109 } 89 110 -
branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Login.php
r19943 r19986 102 102 /* 認証パスワードの判定 */ 103 103 function fnCheckPassword(&$objQuery) { 104 $sql = "SELECT member_id, password, authority, login_date, name FROM dtb_member WHERE login_id = ? AND del_flg <> 1 AND work = 1";104 $sql = "SELECT member_id, password, salt, authority, login_date, name FROM dtb_member WHERE login_id = ? AND del_flg <> 1 AND work = 1"; 105 105 $arrcol = array ($_POST['login_id']); 106 106 // DBから暗号化パスワードを取得する。 … … 108 108 // パスワードの取得 109 109 $password = $data_list[0]['password']; 110 // saltの取得 111 $salt = $data_list[0]['salt']; 110 112 // ユーザ入力パスワードの判定 111 $ret = sha1($_POST['password'] . ":" . AUTH_MAGIC); 112 113 if ($ret == $password) { 113 if (SC_Utils_Ex::sfIsMatchHashPassword($_POST['password'], $password, $salt)) { 114 114 // セッション登録 115 115 $this->fnSetLoginSession($data_list[0]['member_id'], $data_list[0]['authority'], $data_list[0]['login_date'], $data_list[0]['name']); -
branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Customer.php
r19829 r19986 183 183 } 184 184 185 //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない) 186 if ($array["password"] != DEFAULT_PASSWORD) { 187 $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 188 } else { 189 unset($arrRegist['password']); 190 } 185 //-- パスワード/リマインダーの答え暗号化。 186 $salt = SC_Utils_Ex::sfGetRandomString(10); 187 $arrRegist["salt"] = $salt; 188 $arrRegist["password"] = SC_Utils_Ex::sfGetHashString($array["password"], $salt); 189 $arrRegist["reminder_answer"] = SC_Utils_Ex::sfGetHashString($arrRegist["reminder_answer"], $salt); 191 190 192 191 $arrRegist["update_date"] = "Now()"; … … 273 272 $objErr->doFunc(array("ご性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 274 273 $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK")); 275 if ($array["password"] != DEFAULT_PASSWORD) { 276 $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 277 } 274 $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 278 275 $objErr->doFunc(array("パスワードを忘れたときのヒント 質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 279 276 $objErr->doFunc(array("パスワードを忘れたときのヒント 答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); -
branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php
r19892 r19986 150 150 151 151 $this->list_data["password"] = DEFAULT_PASSWORD; 152 $this->list_data["reminder_answer"] = DEFAULT_PASSWORD; 152 153 //DB登録のメールアドレスを渡す 153 154 $this->tpl_edit_email = $result[0]['email']; … … 294 295 } 295 296 $objErr->doFunc(array("パスワードを忘れたときのヒント 質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 296 $objErr->doFunc(array("パスワードを忘れたときのヒント 答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 297 if ($array["reminder_answer"] != DEFAULT_PASSWORD) { 298 $objErr->doFunc(array("パスワードを忘れたときのヒント 答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 299 } 297 300 $objErr->doFunc(array("メールマガジン", "mailmaga_flg") ,array("SELECT_CHECK", "NUM_CHECK")); 298 301 $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_DATE")); -
branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Input.php
r19977 r19986 365 365 366 366 // INSERTする値を作成する. 367 $salt = SC_Utils_Ex::sfGetRandomString(10); 367 368 $sqlVal = array(); 368 369 $sqlVal['name'] = $arrMemberData['name']; 369 370 $sqlVal['department'] = $arrMemberData['department']; 370 371 $sqlVal['login_id'] = $arrMemberData['login_id']; 371 $sqlVal['password'] = sha1($arrMemberData['password'] . ':' . AUTH_MAGIC); 372 $sqlVal['password'] = SC_Utils_Ex::sfGetHashString($arrMemberData['password'], $salt); 373 $sqlVal['salt'] = $salt; 372 374 $sqlVal['authority'] = $arrMemberData['authority']; 373 375 $sqlVal['rank'] = $objQuery->max('rank', 'dtb_member') + 1; … … 401 403 $sqlVal['update_date'] = 'NOW()'; 402 404 if($arrMemberData['password'] != DUMMY_PASS) { 403 $sqlVal['password'] = sha1($arrMemberData['password'] . ":" . AUTH_MAGIC); 405 $salt = SC_Utils_Ex::sfGetRandomString(10); 406 $sqlVal['salt'] = $salt; 407 $sqlVal['password'] = SC_Utils_Ex::sfGetHashString($arrMemberData['password'], $salt); 404 408 } 405 409 -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php
r19893 r19986 160 160 $this->arrForm['password'] = DEFAULT_PASSWORD; 161 161 $this->arrForm['password02'] = DEFAULT_PASSWORD; 162 $this->arrForm['reminder_answer'] = DEFAULT_PASSWORD; 162 163 } 163 164 $this->transactionid = SC_Helper_Session_Ex::getToken(); … … 219 220 $objErr = new SC_CheckError($arrRet); 220 221 $objErr->arrErr = $this->objFormParam->checkError(); 222 if(isset($objErr->arrErr['password']) and $arrRet['password'] == DEFAULT_PASSWORD) { 223 unset($objErr->arrErr['password']); 224 unset($objErr->arrErr['password02']); 225 } 226 if(isset($objErr->arrErr['reminder_answer']) and $arrRet['reminder_answer'] == DEFAULT_PASSWORD) { 227 unset($objErr->arrErr['reminder_answer']); 228 } 221 229 222 230 $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03"),array("TEL_CHECK")); … … 224 232 $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 225 233 if ($this->isMobile === false){ 226 $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 234 if( $arrRet['password'] != DEFAULT_PASSWORD ) { 235 $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 236 } 227 237 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 228 238 $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); -
branches/version-2_5-dev/data/class/util/SC_Utils.php
r19972 r19986 2247 2247 return true; 2248 2248 } 2249 2250 /** 2251 * パスワードのハッシュ化 2252 * 2253 * @param string $str 暗号化したい文言 2254 * @param string $salt salt 2255 * @return string ハッシュ暗号化された文字列 2256 */ 2257 function sfGetHashString($str, $salt) { 2258 $res = ''; 2259 if ($salt == '') { 2260 $salt = AUTH_MAGIC; 2261 } 2262 if ( AUTH_TYPE == 'PLAIN') { 2263 $res = $str; 2264 } else { 2265 $res = hash_hmac(PASSWORD_HASH_ALGOS, $str . ":" . AUTH_MAGIC, $salt); 2266 } 2267 return $res; 2268 } 2269 2270 /** 2271 * パスワード文字列のハッシュ一致判定 2272 * 2273 * @param string $pass 確認したいパスワード文字列 2274 * @param string $hashpass 確認したいパスワードハッシュ文字列 2275 * @param string $salt salt 2276 * @return boolean 一致判定 2277 */ 2278 function sfIsMatchHashPassword($pass, $hashpass, $salt) { 2279 $res = false; 2280 if ($hashpass != '') { 2281 if (AUTH_TYPE == 'PLAIN') { 2282 if($pass === $hashpass) { 2283 $res = true; 2284 } 2285 } else { 2286 $hash = SC_Utils_Ex::sfGetHashString($pass, $salt); 2287 if($hash === $hashpass) { 2288 $res = true; 2289 } 2290 } 2291 } 2292 return $res; 2293 } 2294 2295 2249 2296 } 2250 2297 ?> -
branches/version-2_5-dev/data/mtb_constants_init.php
r19972 r19986 14 14 /** ユーザー作成ページ等 */ 15 15 define('USER_URL', HTTP_URL . USER_DIR); 16 /** 認証 用 magic*/17 define('AUTH_ MAGIC', "31eafcbd7a81d7b401a7fdc12bba047c02d1fae6");16 /** 認証方式 */ 17 define('AUTH_TYPE', "HMAC"); 18 18 /** テンプレートファイル保存先 */ 19 19 define('USER_TEMPLATE_DIR', "templates/"); … … 91 91 define('OPTION_CLASS_REGIST', 1); 92 92 /** 会員登録変更(マイページ)パスワード用 */ 93 define('DEFAULT_PASSWORD', " UAhgGR3L");93 define('DEFAULT_PASSWORD', "********"); 94 94 /** 別のお届け先最大登録数 */ 95 95 define('DELIV_ADDR_MAX', 20); -
branches/version-2_5-dev/data/require_base.php
r19805 r19986 25 25 define("DATA_REALDIR", HTML_REALDIR . HTML2DATA_DIR); 26 26 } 27 // PHP4互換用関数読み込み(PHP_Compat) 28 require_once(DATA_REALDIR . "require_compat.php"); 27 29 28 30 // アプリケーション初期化処理
Note: See TracChangeset
for help on using the changeset viewer.