Php 登录尝试超时
我有一个票务服务台,我将登录次数限制为10次。10次后,用户无法再次登录!我想为登录尝试设置超时 因此,如果有人尝试登录,并且错误登录了10次,那么只有5到10分钟才能从该IP或该用户名再次登录。我有一个Php 登录尝试超时,php,Php,我有一个票务服务台,我将登录次数限制为10次。10次后,用户无法再次登录!我想为登录尝试设置超时 因此,如果有人尝试登录,并且错误登录了10次,那么只有5到10分钟才能从该IP或该用户名再次登录。我有一个config.php文件,我有: define('LOGIN_TRIES',10); //and in my login.php page i have this: //limit login tries. if (isset ( $_SESSION['hit'] ) )
config.php
文件,我有:
define('LOGIN_TRIES',10);
//and in my login.php page i have this:
//limit login tries.
if (isset ( $_SESSION['hit'] ) ) {
$_SESSION['hit'] += 1;
if ($_SESSION['hit'] > LOGIN_TRIES){
echo "<p><i class='fa fa-lock fa-2x pull-left'></i>Access Locked.</p>";
include("includes/footer.php");
exit;
}
}else{
$_SESSION['hit'] = 0;
}
define('LOGIN_TRIES',10);
//在我的login.php页面中,我有以下内容:
//限制登录尝试次数。
如果(isset($_会话['hit'])){
$\会话['hit']+=1;
如果($\会话['hit']>登录\u尝试){
回显“访问锁定。”;
包括(“includes/footer.php”);
出口
}
}否则{
$\u会话['hit']=0;
}
您正在防范暴力攻击。我发现下面的链接很有用。使用数据库表记录登录尝试及其时间、用户名或电子邮件地址,以及您的IP地址(在下面链接的示例中未执行)
见第3节-蛮力功能
因此,本例中的查询选择特定时间范围内的所有实例(可能,因为您记录了每次登录尝试的时间) 当然您可以改进此代码,但基本逻辑是在用户被锁定时设置时间戳,然后检查锁定是否超时 如果是,则重置
点击至0
if (isset ( $_SESSION['hit'] ) ) {
/* If user is locked check for timeout, set to 10min */
if( isset($_SESSION['locked_time']) &&
($_SESSION['locked_time']+600 ) <= time()) ){
$_SESSION['hit'] = 0;
unset($_SESSION['locked_time']);
}
$_SESSION['hit'] += 1;
if ($_SESSION['hit'] > LOGIN_TRIES){
$_SESSION['locked_time'] = time(); // set last locked time here
echo "<p><i class='fa fa-lock fa-2x pull-left'></i>Access Locked.</p>";
include("includes/footer.php");
exit;
}
}
else{
$_SESSION['hit'] = 0;
}
if(isset($\u会话['hit'])){
/*如果用户被锁定,请检查超时,设置为10分钟*/
如果(isset($_会话['locked_time'])&&
($_会话['locked_time']+600)登录尝试){
$\u SESSION['locked\u time']=time();//在此处设置上次锁定的时间
回显“访问锁定。”;
包括(“includes/footer.php”);
出口
}
}
否则{
$\u会话['hit']=0;
}
好的,但这里的问题是什么?问题是如何设置登录尝试的超时。因为如果有人犯了10次错误,他就永远无法从那个浏览器再次登录。那么?由于您使用会话来应用此限制,黑客所要做的就是清除他们的cookie并删除此限制。您需要通过IP地址执行此操作。它对我不起作用。我把它放在我的index.php
文件中,其中有我的登录表单,而页面没有opening@Aria您必须根据自己的需要修改代码,我不知道您的其他代码。具体在哪里修改?@Aria请尝试自己调试代码,不要只是粘贴代码并期望它工作。我不是php的专业人士,你能告诉我在哪里换车吗,伙计?