我今天联系你们所有人,询问是否有人知道更有效的方法来创建自定义反网络钓鱼系统,该系统可以识别登录IP超过10次,并将其视为“可信”来源,而新IP (至少访问5次或更少)被“黑名单”,并阻止帐户。
这是我的代码:
<?php
$sql="select * from user_table where netuser_id = $_SESSION[netuser_id]";
$res=mysql_query($sql);
$data_set=mysql_fetch_array($res);
if($data_set["current_record"]!=$data_set["last_record"])
{
?>
<!-- Phishing Announcement -->
You've been phished! D: Please change your account password.
<!-- Phishing Announcement -->
<?php
}
?>
这段代码在某种程度上是有效的,但我最初的想法是这样做:
<?php
$sql="select count(*) as a from current_ips where netuser_id = ".$_SESSION["netuser_id"]." and current_ips = $_SERVER[REMOTE_ADDR];";
$result = mysql_query($sql);
$phished=mysql_num_rows($result);
if($phished==0)
{
?>
<!-- Phishing Announcement -->
You've been phished! D: Please change your account password.
<!-- Phishing Announcement -->
<?php
}
else
{
?>
<?php
}
?>
然而,这个代码并不是那么有效,考虑到我希望代码只有在被一个无法识别的IP访问了大约3次时才会自动启动。并且如果识别出的ip已经被访问超过5-10次,则禁用其自身。
示例:
我的IP共访问我的账号230/270次。我表哥的IP访问了我的账号20次。我的朋友访问了我的账户10次。我姐姐也是。
因此,它被归类为“可信”来源,因为该IP是静态的,并且每次我访问该站点时,它对我都有效!:)
但是,假设我通过一个无法识别的IP (我父亲的房子)访问我的帐户,然后我希望网络钓鱼系统能够自动启用,并阻止我访问我的帐户,直到我更改了密码。
非常感谢您的帮助:)
发布于 2013-02-05 08:02:48
许多不同的平台(谷歌,脸书和几家主要银行)使用短信认证的双因素认证系统,因此你可以很容易地在你的own website上使用Google's 2-auth移动应用程序。
在任何情况下,一旦使用2FA对用户进行了身份验证,您就可以保存一个cookie,其中包含您在数据库中保存的秘密,这将确保这是一台可识别的计算机。这个cookie应该在30天左右过期。
这样,您可以使用额外的安全措施(如安全问题等)。当用户来自“不受信任的计算机”并通过身份验证后,请保存该cookie,该cookie将在用户下次进入时将其从这些措施中解救出来。
这种方法比依赖IP更好,因为到目前为止,IP几乎不是一种可靠的身份识别方法。
https://stackoverflow.com/questions/14697728
复制相似问题