任意PHP网站登录后台增加IP验证
对于站长来说,网站后台地址和密码如果是默认的,或者比较简单,这样的风险是很大的,所以站长们都是想尽各种办法隐藏,后台密码也是尽量复杂,这样带来的一个坏处就是每次登录都很麻烦。
增加IP验证会让后台相对安全一些,相当于云服务器或云数据库的白名单,只允许特定IP登录。
而现在流行的建站程序都没有这一功能,现在教大家如何使用。
核心代码:
$ip = $_SERVER['REMOTE_ADDR'];
if($ip != '指定IP'){
exit;
}
食用方法:
1.打开百度,搜索ip,查看当前的外网IP。
2.打开网站后台登录文件(一般是login.php),在“<?php”后面敲回车,添加上面的代码,把“指定IP”替换成外网IP,保存并上传到服务器。
这样就可以了,当访问login.php时会先进行IP验证,如果访问者IP不是自己设定的IP,会强行退出。
方法扩展:
如果后台的PHP文件可以直接访问,给每个文件都添加上面的代码就比较麻烦了,一旦IP变动,所有文件都要改。这时可以用下面的方法。
核心代码:
<?php
$ip=$_SERVER['REMOTE_ADDR'];
if($ip!='指定IP'){
exit;
}
?>
1.复制上面的代码,保存成一个php文件,名称随意,例如:ipcheck.php。
2.获取当前外网IP,替换到“指定IP”,保存。
3.把ipcheck.php上传到login.php的同级目录。把所有要修改的后台文件先备份下,然后统一在每个文件的“<?php”的后面敲回车,然后添加以下代码:
require_once('ipcheck.php');
这样就完成了。如果外网IP变动,只修改ipcheck.php里的IP就可以。
还有一种方法,如果后台文件都引用同一个文件,比如config.php,可以在这个文件里添加代码,这样每次只需要修改config.php而不用另行上传了。
当然这个方法也是有缺点的:IP变动和修改文件。
企业可以申请独立外网IP,一些大型公司会有固定的IP地址,一般的公司或个人就是用的普通的ADSL拨号,这个外网IP都是动态的,隔一天或一段时间就会变。如果IP发生变化,就必须要修改刚才的验证文件了。
登录后台还要用FTP修改文件,看着像是比之前更麻烦了,但这样带来的好处也是显而易见的:
即使用默认的后台地址和登录密码,别人也没法登录后台。相对于这个好处,增加修改文件这个步骤也就可以接受了。
尤其是对于一些小公司的网站,可能长年不登录,不发布信息,添加了后台验证,也可以抵御一部分攻击。
另:
require_once默认不能引用父级目录的文件,如果想引用父级还需要修改配置文件,这个可以根据需要自行搜索。
如果把验证文件里的IP改成内网IP,比如10.0.0.1或者192.168.1.1,这样就会拒绝所有访问。
扩展阅读:
获取当前访问IP:
$_SERVER['REMOTE_ADDR']
或者:
getenv ("REMOTE_ADDR")
这两个的效果是一样的,惟一的区别是getenv不支持IIS的isapi方式运行的PHP,而现在用IIS的已经很少了,这一点影响也不大。需要注意的是,在本地运行时是得不到正确的IP的,会显示::1或者0.0.0.0,在服务器上运行是正常的。
这样设置不大好吧,万一ip改变就登录不了啦,还是改后台地址比较好吧。。
@crll
后半段说明缺点了