2015-11-03 102 views
0

我正在实现一个使用PHP和Javascript的投票系统。一切运作良好,但我多次遇到麻烦。现在,我使用Cookie来检查用户是否已经投票:PHP投票 - 跟踪用户

if(isset($_COOKIE['lastdate'])) { 
    $val = $_COOKIE['lastdate']; 
    if ($val == $today) 
    { 
     $voted = 1; 
    } 
} 

它的工作原理,但它很容易受到人们去无痕或换用浏览器/清除Cookie。

为什么我不使用IP地址?由于我们在工作中使用此站点,并且所有计算机都连接到路由器,因此所有IP都是相同的。

问题是,我怎样才能防止多投票,识别客户端,但没有普通的IP和没有使用任何形式的身份验证/登录?

回答

0

不幸的是,没有使用某种形式的身份验证,用户将总是能够绕过您尝试阻止它们。

隐身窗口会删除所有Cookie并创建新会话,这意味着您现在无法识别该用户。添加Cookie和会话检查将减少作弊,但实际上没有其他解决方法。

我推荐一键登录从社交网络,这通常是一个很好的用户组合 - 他们不必注册,但他们仍然登录。这意味着他们只能使用多个社交媒体帐户作弊,这是更多的工作。

+0

谢谢,我想这是不可能的,除非有某种方式来跟踪像mac地址这样的东西,但我已经搜索并发现它是不可能的。我想我会使用谷歌的OAuth系统。 – Heriotza