商城前后台限制ip地址访问

可禁止设定的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不在白名单中,请联系管理员。‘;

大功告成!

注意:语言包的文字可以根据个人意愿进行调整,这里展示的只是大概意思。本人处以学习状态,主要用学习,本代码带来的任何问题,跟本人没有任何关系。(我只是在这里记录自己所做得笔记)。

 

 

  

  

时间: 2024-10-06 07:22:12

商城前后台限制ip地址访问的相关文章

grunt默认只允许localhost和访问,如何设置外部IP地址访问

使用Yeoman生成器创建web项目,使用grunt server启动,默认访问地址为127.0.0.1:9000或者localhost:9000 如果用本机地址如:192.168.1.100:9000访问默认是访问不到的 想要通过IP地址访问需要修改Gruntfile.js的配置: 修改connect节点配置,原本的配置如下: 可以看到hostname上面有注释,大概意思是:将地址改为'0.0.0.0'可从外部访问. 修改成下图,我们的grunt server就可以从外部访问啦!

配置IIS Express以便通过IP地址访问调试的网站

问题背景 最近使用C#编写了一个WebService,希望通过Java进行调用.使用Visual Studio 2013调试WebService时,可以在浏览器中通过localhost地址访问WSDL文件. 访问方式如:http://localhost:2256/DataProvider.asmx?WSDL. 但是,当使用http://127.0.0.1:2256/DataProvider.asmx?WSDL或者使用http://[本机IP]:2256/DataProvider.asmx?WSD

安装成功edx后,通过ip地址访问出现登录验证框的问题

主要是在playbooks中设置了登录验证. 修改 cd /var/tmp/configuration/playbooks/roles/common/defaults sudo vi main.yml COMMON_ENABLE_BASIC_AUTH: True 将其改为 False,保存. 然后再进行安装. cd /var/tmp/configuration/playbooks && sudo ansible-playbook -c local ./edx_sandbox.yml -i

【转】PostgreSQL IP地址访问配置

原文:http://blog.csdn.net/shuaiwang/article/details/1793294 1.PostgreSQL的安装目录,进入data文件夹,打开postgresql.conf文件,修改listen_addresses,如下 # - Connection Settings -listen_addresses = 'localhost,123.123.123.123'        # what IP address(es) to listen on;        

linux下通过iptables只允许指定ip地址访问指定端口的设置方法

这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptab

Tomcat6 只允许指定域名访问,禁用IP地址访问,防止恶意解析

2015.02.27 突然同事反应,在百度上搜索其他域名,竟然打开了和我们P2P一模一样的网站,我第一个反应是源代码被盗用了.后来发现,是域名被恶意解析了,解决方法 1.禁止IP地址访问项目  2.只允许指定的域名访问. 环境:tomcat 6 方法: 修改tomcat 6 的配置文件  tomcat/conf/server.xml,实现原理,将tomcat 缺省参数defaultHost指向一个不存在的域名上,并添加同样的虚拟目录,这样当被一个未知的域名解析过来后,访问的缺省虚拟目录,但这个目

Nginx禁止直接通过IP地址访问网站

介绍下在nginx服务器禁止直接通过IP地址访问网站的方法,以避免别人恶意指向自己的IP,有需要的朋友参考下. 有时会遇到很多的恶意IP攻击,在Nginx下可以禁止IP访问. Nginx的默认虚拟主机在用户通过IP访问,或通过未设置的域名访问,在server的设置里面添加这一行: 复制代码代码示例: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站时,希望禁止显示任何有效内

【IIS小技巧】将IIS Express改成可以通过ip地址访问

通过浏览器访问的是localhost,如果通过手机访问则需要用ip地址,所以要修改IIS Express的配置,允许通过ip地址访问. IIS Express的配置文件默认在C:\Users\UserName(用户名)\Documents\IISExpress\config目录下,打开applicationhost.config找到site节点 注意:1024以下的端口为保留端口,如果端口号小于1024需要以管理员权限启动IIS Express,否则会启动失败.

通过IP地址访问Jboss服务器上的应用

环境介绍 Web项目中,在没有域名服务器的条件下,我们只想通过IP访问后台应用服务器,而不需要在IP地址后面加上项目名称.也就是这个意思,我们刚刚开发的pj系统发布后,需要这个访问: http://192.168.24.48:8380/gxpt_web_pj_login 这样,不仅暴露项目名称,而且也太长,大家输入的时候太容易出错.之前都是在通过文件服务器,把地址分享给大家,今天测试正赶上文件服务器坏掉了.本文就介绍通过IP地址,访问后台应用服务器. 思路介绍 我们安装好Jboss之后,访问:h