0

我今天与大家联系,询问是否有人知道创建自定义反网络钓鱼系统的更“有效”方法,该系统可以识别登录 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,并且每次我访问该站点时,它都对我有用!:)

但是假设我通过一个无法识别的 IP(我爸爸的房子)访问我的帐户,那么我希望网络钓鱼系统能够自行启用并阻止我访问我的帐户,直到我更改密码。

任何帮助是极大的赞赏 :)

4

1 回答 1

2

许多不同的平台(Google、Facebook 和几家主要银行)使用使用 SMS 身份验证的 2 因素身份验证系统,您可以非常轻松地将Google 的 2 身份验证移动应用程序用于您自己的网站

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

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

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

于 2013-02-05T00:02:48.163 回答