標籤:des blog http io os ar for 檔案 sp
可禁止設定的IP或IP段訪問前台,允許設定的IP或IP段登陸後台,增強網站安全性。IP段用*表示,多個地址用半形逗號分隔,優先順序自左向右。程式版本為ECSHOP2.7.3,低版本的使用者請手動升級。
實現步驟如下:
一、後台執行sql語句,添加所需要的欄位,以及預設的幾個ip,可以自行修改。如:
INSERT INTO ecs_shop_config (id, parent_id, code, type, store_range, store_dir, value, sort_order) VALUES(10, 0, ‘ip_limit‘, ‘group‘, ‘‘, ‘‘, ‘‘, 1),(1001, 10, ‘front_block‘, ‘select‘, ‘1,0‘, ‘‘, ‘0‘, 1),(1002, 10, ‘front_block_ip‘, ‘text‘, ‘‘, ‘‘, ‘58.60.68.134,61.135.169.*,125.39.127.*‘, 1),(1003, 10, ‘back_permit‘, ‘select‘, ‘1,0‘, ‘‘, ‘0‘, 1),(1004, 10, ‘back_permit_ip‘, ‘text‘, ‘‘, ‘‘, ‘174.36.160.*,174.36.161.155‘, 1);
二、在網站/includes/lib_common.php檔案尾加入
/** * 檢查用戶端IP是否在名單中 * @param string $ip_list IP配置字串 * @param string $real_ip 用戶端IP * @return boolean $flag 返回布爾值 */function checkIP($ip_list, $real_ip, $flag){$list = explode(‘,‘, $ip_list);foreach($list as $ipStr){//從右向左檢查IP字串,如果不含星號,則不是IP段。if(strpos($ipStr, ‘*‘) == false) {if($ipStr == real_ip()){ $flag = true;return $flag;}}else{//如果星號之前的IP段字串是用戶端IP的子串$ipStr = substr($ipStr, 0, strpos($ipStr, ‘*‘)-1);if(strpos($real_ip, $ipStr) !== false){$flag = true;return $flag;}}}return $flag; //不在名單中}
三、在網站/includes/init.php檔案尾加入
/* 前台IP限制 */if($_CFG[‘front_block‘] == ‘1‘){$flag = false;$flag = checkIP($_CFG[‘back_permit_ip‘], real_ip(), $flag);if($flag){ echo $_LANG[‘access_deny‘]; exit;}}
四、在網站/admin/includes/init.php檔案尾加入
/* 後台IP限制 */if($_CFG[‘back_permit‘] == ‘1‘){$flag = false;$flag = checkIP($_CFG[‘back_permit_ip‘], real_ip(), $flag);if(!$flag){ echo $_LANG[‘access_deny‘]; exit;}}
五、在網站/languages/zh_cn/admin/shop_config.php中加入
/* 訪問限制 */$_LANG[‘cfg_name‘][‘ip_limit‘] = ‘訪問限制‘;$_LANG[‘cfg_name‘][‘front_block‘] = ‘是否開啟前台IP限制‘;$_LANG[‘cfg_range‘][‘front_block‘][0] = ‘關閉‘;$_LANG[‘cfg_range‘][‘front_block‘][1] = ‘開啟‘;$_LANG[‘cfg_name‘][‘front_block_ip‘] = ‘前台IP黑名單‘;$_LANG[‘cfg_desc‘][‘front_block_ip‘] = ‘IP段用*表示,多個地址用半形逗號分隔,優先順序自左向右。‘;$_LANG[‘cfg_name‘][‘back_permit‘] = ‘是否開啟後台IP限制‘;$_LANG[‘cfg_range‘][‘back_permit‘][0] = ‘關閉‘;$_LANG[‘cfg_range‘][‘back_permit‘][1] = ‘開啟‘;$_LANG[‘cfg_name‘][‘back_permit_ip‘] = ‘後台IP白名單‘;$_LANG[‘cfg_desc‘][‘back_permit_ip‘] = ‘IP段用*表示,多個地址用半形逗號分隔,優先順序自左向右。‘;
六、在商城/languages/zh_cn/common.php中加入
/* 訪問限制 */$_LANG[‘access_deny‘] = ‘對不起,您的IP已被列入黑名單,請聯絡管理員。‘;
七、/languages/zh_cn/admin/common.php中加入
/* 訪問限制 */$_LANG[‘access_deny‘] = ‘對不起,您的IP不在白名單中,請聯絡管理員。‘;
大功告成!
注意:語言套件的文字可以根據個人意願進行調整,這裡展示的只是大概意思。本人處以學習狀態,主要用學習,本代碼帶來的任何問題,跟本人沒有任何關係。(我只是在這裡記錄自己所做得筆記)。
商城前後台限制ip地址訪問