PHP给后台管理系统加安全防护机制的一些方案

本篇文章主要讲解PHP管理系统后台管理员登录中心的防护方法。
适用范围:php原生、框架内部使用、或者其他语言和系统参考。

方案一、通过在登录界面增加URL的加密参数进行判断 【能避免暴力破解、相对轻便简单】

配置参数说明: 后台系统设置界面、或者数据库存储、再或者将加密参数存储在redis缓存中都可。

主要思路: 保存一个明文或者密文在指定的位置,登录界面访问时进行加密参数的匹配,成功者显示界面,不成功则不显示。

代码实例:

<?php
	//以URL /admin.php?key=123456 为例子
	$key = $_GET['key'];//加密的参数,明文或者密文 
	$_key = $_SESSION['key'];//以保存在session中为例,mysql的自行取值存,redis自行,只要做到存储密文读取密文内容即可。加密时则保存加密的内容
	//明文时判断
	if($key!==$_key){
		return '404';//此处提示错误信息,或者直接用header函数跳转到首页即可	
	}
	//以md5()加密的密文为例
	if($key!==md5($_key)){
		return '404';//此处提示错误信息,或者直接用header函数跳转到首页即可	
	}

作用:保护后台管理系统不被暴力破解。

二、对登录进行多重密码的校验 【能避免暴力破解】

配置参数说明: 设置一个登录的口令,登录表单中账号密码、口令都输入正确才可进行登录,并且同上一个方法一样,存储固定。可单一一个对应一个管理员,也可共同使用一个。

主要思路: 验证口令,口令和密码均对才可登录,防止被暴力破解的可能性。

代码实例:

<?php
	//参数获取示例
	$number = $_POST['number'];//账号号码
	$pwd = md5($_POST['pwd']);//密码
	$aqm = md5($_POST['aqm']);//安全码  用户前端输入的
	$_aqm = $_SESSION['_aqm'];//以session为例子获取早早存储好的安全码
	$code = $_POST['code'];//登录验证码,也可以时行为验证的参数
	...增加上验证码的验证,对比验证码的参数是否匹配
	//进行验证
	if($aqm!==$_aqm){
		echo '验证失败';
		//...存入失败次数和账号以及ip的信息,并累计失败次数,达到一定数目时直接拒绝请求
	}
	$login_err_num = $_SESSION['login_err_num'];//以session为例累计失败次数,并获取失败的次数
	if($login_err_num>=5){
		echo '请求被拒绝';
	}
	
	.... 此处代码逻辑省略,用户的密码验证以及相关的安全验证逻辑 自行书写

三、通过固定的vpn进行登录 【相对私密安全、实用】

说明:通过运维,禁止访问登录url,并创建一个vpn,并将这个vpn的地址绑定为白名单。只有通过这个vpn账号在自己的电脑中登录后才可访问这个url,否则任何访问都不可以。

四、通过固定的win云主机进行登录 【相对私密安全、比较多此一举】

说明:购买一台win系统的主机,通过绑定这台主机的ip地址,进行验证和判断是否可以请求登录url。或者后台管理系统假设在这台主机中,只能通过127.0.0.1进行内部的访问。

五、内网限制 【相对私密安全、实用适合办公】

说明:和三四的方案异曲同工,通过linux或其他系统特性,制定企业内网环境,并将后台管理系统搭建在内网中独立存在,只能通过连接公司有线网络或者无线网络进行访问,同时假设vpn,员工在家也可电脑登录vpn进行内网的访问。

end:当然除了上面举例的以外,还是有很多其他方式对此进行安全防护的方法,如通过服务器系统进行相对应的防御机制的开发。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任聪聪

创作不易,你的打赏是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值