反网络钓鱼系统(更有效的方法)

时间:2013-02-04 23:36:10

标签: php database security

我今天与您联系,请求是否有人知道更有效的方式来创建自定义反网络钓鱼系统,该系统可以识别已登录的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(我父亲的家)访问我的帐户,然后我希望网络钓鱼系统启用自身并阻止我访问我的帐户,直到我更改密码。

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:2)

许多不同的平台(谷歌,Facebook和几家主要银行)使用使用短信身份验证的双因素身份验证系统,您可以非常轻松地为Google's 2-auth使用own website移动应用。

在任何情况下,一旦用户使用2FA进行身份验证,您就可以保存一个包含您也保存在数据库中的秘密的cookie,这将确保这是一个可识别的计算机。该cookie应在30天左右到期。

这样,当用户来自“不受信任的计算机”并且经过身份验证后,您可以使用额外的安全措施(如安全问题等),保存该cookie,以便下次用户从这些措施中保存用户进来。

这种方法比依赖IP更好,而现在这种方法几乎不是一种可靠的识别方法。