我有一个保留变量的问题。我想当你提交表单时,变量将被重置为默认值。所以我不知道如何限制3次登录尝试,直到它说“Go Away!Hacker!”。只使用PHP,没有别的。 任何人都有线索?不要担心安全问题,因为这只是我的教授给予我们的练习的一个例子,我们只需要使用php就可以完成。所以不要担心黑客重置cookie。PHP登录计数器
注意:我只使用XAMPP来使php在localhost中工作。
下面的代码在PHP中:
<center><form action="" method="post"><br>
User ID: <input type="text" name="id"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" name="submit" value="login">
</form>
<?php
if(isset($_POST['submit'])){
$counter = 0;
$counter++;
$vid = 'hanzo';
$vpass = '123456';
$id = $_POST['id'];
$pass = $_POST['pass'];
$c = "<center>";
if(empty($id)) echo "$c Please Input Username.<br>";
else if(empty($pass)) echo "$c Please Input Password.<br>";
else if($vid==$id && $vpass==$pass) echo "$c Login Succesfully<br>";
else if($counter>3) echo "$c Go Away! Hacker!<br>";
else echo "$c Invalid Username/Password<br> Login Attempt: $counter";
}
?>
你在使用Sessions吗? – Elen 2012-07-17 14:25:25
我建议在数据库中记录失败的尝试,并且当它们达到3时,在最后5分钟内,即使正确但没有给出失败原因的登录失败。这应该有助于防止蛮力攻击 – Waygood 2012-07-17 14:27:53
您需要将计数器存储在永久存储器中,例如数据库。然后在发生成功登录或足够的时间后重置为零。 – 2012-07-17 14:28:07