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

source: OpenPNE/branches/stable-2.14.x/webapp/modules/pc/page/o_update_password.php @ 12068

Last change on this file since 12068 was 12068, checked in by nagasawa, 11 years ago

#4033:秘密の質問を省略した場合の悪意のある操作を防止するための機能の追加(2.14.x)

File size: 1.8 KB
Line 
1<?php
2/**
3 * @copyright 2005-2008 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7require_once OPENPNE_MODULES_DIR . '/admin/lib/db_admin.php';
8
9class pc_page_o_update_password extends OpenPNE_Action
10{
11    function isSecure()
12    {
13        return false;
14    }
15
16    function execute($requests)
17    {
18        // 外部認証の場合はリダイレクト
19        check_action4pne_slave(false);
20
21        // --- リクエスト変数
22        $session = $requests['session'];
23        $id = $requests['id'];
24        // ----------
25
26        // ハッシュ化されたIDを戻す
27        $c_member_id = t_decrypt($id);
28
29        // 権限チェック
30        if (!db_member_c_member_config4name($c_member_id, 'update_password_ssid'))
31        {
32            handle_kengen_error();
33        }
34        if (!db_member_c_member_config4name($c_member_id, 'password_ssid_query_time'))
35        {
36            handle_kengen_error();
37        }
38
39        $c_member_config = db_member_c_member_config4c_member_id($c_member_id);
40
41        // 権限チェック
42        if (!$c_member_config['update_password_ssid'] && !$c_member_config['password_ssid_query_time'])
43        {
44            handle_kengen_error();
45        }
46        if ($c_member_config['update_password_ssid'] != $session) {
47            handle_kengen_error();
48        }
49
50        $one_day_time = 86400;
51        $limit_password_ssid_query_time
52            = $c_member_config['password_ssid_query_time'] + ($one_day_time * 3);
53
54        // 権限チェック
55        if (time() > $limit_password_ssid_query_time) {
56            $p = array('msg_code' => 'update_password_timeout');
57            openpne_redirect('pc', 'page_o_tologin', $p);
58        }
59
60        $this->set('c_member_id', $c_member_id);
61        $this->set('session', $session);
62        $this->set('id', $id);
63
64        return 'success';
65    }
66}
67
68?>
Note: See TracBrowser for help on using the repository browser.