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

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1157 closed enhancement (fixed)

携帯アクセス時に携帯キャリアのIPからのみしかアクセスできないように制限する

Reported by: kunitada Owned by: ebihara
Priority: blocker Milestone: OpenPNE2.10alpha1
Component: pne-ktai Version:
Keywords: Cc:

Description (last modified by ebihara)

■機能概要

■仕様

  • webapp/lib/ktaiIP.php に IPのサブネットマスクを列挙

■関連情報

携帯アクセス時に携帯キャリアのIPからのみしかアクセスできないように制限する

config.phpでIPを列挙するのがよいか。

Change History (22)

comment:1 Changed 12 years ago by kunitada

Component: pne-adminpne-ktai

comment:2 Changed 12 years ago by kunitada

Priority: criticalblocker

comment:3 Changed 12 years ago by kunitada

Owner: changed from nobody to ebihara

comment:4 Changed 12 years ago by ebihara

Status: newassigned

やります。まず仕様決めから。

comment:5 Changed 12 years ago by ebihara

config.php の設定項目

config.phpに、以下二点の設定項目を設けます。

define('CHECK_KTAI_IP', false);
携帯IP制限を使用するかどうか。デフォルトはfalse

$GLOBALS_OPENPNE_KTAI_IP_LIST? = array();

許可する携帯IPリスト。$GLOBALS_OPENPNE_API_IP_LIST?のように列挙する。

	// 許可するIPリスト('any'が含まれている場合はIPをチェックしません)
	$GLOBALS['_OPENPNE_API_IP_LIST'] = array(
	'127.0.0.1',
	//'192.168.0.1',
	//'any',
	);

init.inc でIPチェック

webapp/modules/ktai/init.incで、もしCHECK_KTAI_IPがtrueの場合はIPをチェックします。

$_SERVERREMOTE_ADDR?か$_SERVERHTTP_X_FORWARDED_FOR?のどちらも$GLOBALS_OPENPNE_API_IP_LIST?に含まれていない場合は、エラーページに飛ばします。エラー文言は「携帯電話以外からはアクセスできません」。

comment:6 Changed 12 years ago by ebihara

各キャリアは"202.179.204.0/24"のような形でIP帯域を示しているため、これをconfig.phpに記す形で対応する。

IP範囲の判定はPEARのNet_IPv4を用いることで可能(http://pear.php.net/package/Net_IPv4/)。

キャリアの公式発表資料を基にしたIP帯域のリストは以下。

$GLOBALS['_OPENPNE_KTAI_IP_LIST'] = array(
//docomo
'210.153.84.0/24', '210.136.161.0/24', '210.153.86.0/24',
//softbank
'202.179.204.0/24', '202.253.96.248/29', '210.146.7.192/26', '210.146.60.192/26', '210.151.9.128/26', '210.169.130.112/29', '210.169.130.120/29', '210.169.176.0/24', '210.175.1.128/25', '210.228.189.0/24', '211.8.159.128/25',
//au
'210.169.40.0/24', '210.196.3.192/26', '210.196.5.192/26', '210.230.128.0/24', '210.230.141.192/26', '210.234.105.32/29', '210.234.108.64/26', '210.251.1.192/26', '210.251.2.0/27', '211.5.1.0/24', '211.5.2.128/25', '211.5.7.0/24', '218.222.1.0/24', '61.117.0.0/24', '61.117.1.0/24', '61.117.2.0/26', '61.202.3.0/24', '219.108.158.0/26', '219.125.148.0/24', '222.5.63.0/24', '222.7.56.0/24', '222.5.62.128/25', '222.7.57.0/24', '59.135.38.128/25', '219.108.157.0/25', '219.125.151.128/25', '219.125.145.0/25', '121.111.231.0/25',
);

comment:7 Changed 12 years ago by ebihara

Owner: changed from ebihara to ogawa
Status: assignednew

r3821で対応しました。ご確認ください。

comment:8 Changed 12 years ago by ebihara

r3823でWILLCOM端末のIP帯域設定を追加し、各キャリアIP帯域情報ページのURLと情報の最終更新日を補足しました。

comment:9 Changed 12 years ago by ogawa

Owner: changed from ogawa to ebihara

エラーの場合の処理がUAチェックの場合と違うので統一してください。

comment:10 Changed 12 years ago by ebihara

Status: newassigned

やります。

comment:11 Changed 12 years ago by ebihara

Owner: changed from ebihara to ogawa
Status: assignednew

r3837

で、エラー処理をUAチェックに合わせました。

comment:12 Changed 12 years ago by kunitada

Owner: changed from ogawa to ebihara

BIZ気をつけて

comment:13 Changed 12 years ago by ebihara

Owner: changed from ebihara to ogawa

r3856

携帯版BIZに対応しました。ご確認ください。

comment:14 Changed 12 years ago by ebihara

r3857で携帯IP制限処理を関数化しました。

comment:15 Changed 12 years ago by ogawa

Owner: changed from ogawa to ebihara

UAのIP取得には、SERVER_IP_KEY定数を利用してください。

$_SERVER[SERVER_IP_KEY]

で取り出せます。

それと、for は foreach で置き換えた方が読みやすいかなと思います。

comment:16 Changed 12 years ago by ebihara

Status: newassigned

了解です。そのように修正します。

comment:17 Changed 12 years ago by ebihara

Owner: changed from ebihara to ogawa
Status: assignednew

r3882でSERVER_IP_KEY定数を使用する形に置換しました。for -> foreachに置換もしました。

ご確認ください。

comment:18 Changed 12 years ago by ogawa

Owner: changed from ogawa to ebihara

comment:19 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed

comment:20 Changed 12 years ago by ogawa

Milestone: OpenPNE2.10OpenPNE2.10alpha1

comment:21 Changed 12 years ago by ebihara

Description: modified (diff)

comment:22 Changed 12 years ago by ebihara

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