gpt4 book ai didi

php - 阻止人们使用 PHP 劫持投票系统?

转载 作者:可可西里 更新时间:2023-11-01 13:46:31 26 4
gpt4 key购买 nike

我可以使用哪些代码示例来阻止人们通过破解 php 脚本来投票以给他们更高的评分?

最佳答案

第一道防线是cookie。

基本上,您在他们的机器上设置 cookie,如果存在则禁用投票。

setcookie('cookiename', 'voted=1');

// and later

if(isset($_COOKIE['cookiename']) && $_COOKIE['cookiename'] = "voted=1")
{
// error
}

这消除了您可能需要进行的数据库调用以验证他们的投票。将其保留在适当的位置是个好主意,因为它就像缓存:对数据库的访问越少越好。

第二道防线是 IP 限制。您基本上会检查数据库中的 IP 地址日志,看看他们最近是否投票。

mysql_query('INSERT INTO TABLE (`IP_ADDR`, `TIME`) VALUES("'.$_SERVER['REMOTE_ADDR'].'", "'.time().'")');

// and later

$results = mysql_query('SELECT IP_ADDR FROM TABLE WHERE IP_ADDR="'.$_SERVER['REMOTE_ADDR'].'"');

if(mysql_num_rows($results) != 0)
{
// error
}

将你的整个脚本变成类似的东西

if(isset($_COOKIE['cookiename']) && $_COOKIE['cookiename'] = "voted=1")
{
die("You have voted recently.");
}

$results = mysql_query('SELECT IP_ADDR FROM TABLE WHERE IP_ADDR="'.$_SERVER['REMOTE_ADDR'].'"');

if(mysql_num_rows($results) != 0)
{
die("You have voted recently");
}

//Do Voting Stuff Here
vote($_GET['vote']);

// Record the vote.
setcookie('cookiename', 'voted=1');
mysql_query('INSERT INTO TABLE (`IP_ADDR`, `TIME`) VALUES("'.$_SERVER['REMOTE_ADDR'].'", "'.time().'")');

您还必须添加过期时间等,但它的基本内容就在那里。

关于php - 阻止人们使用 PHP 劫持投票系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com