【问题标题】:PHP Prevent 'Like' Button SpamPHP 防止“喜欢”按钮垃圾邮件
【发布时间】:2014-05-04 04:57:44
【问题描述】:

我正在尝试在用户评论旁边创建一个赞按钮,问题是恶意用户可能会向该按钮发送垃圾邮件,并且它会多次查询数据库以获得有效性,这是一个问题。 我考虑过使用 CodeIgniter 的 Sessions 实现时间戳检查,但它无法正常工作。示例:

if ($this->session->userdata('last_activity') + 30 < time())
            echo 'ok';
        else
            echo 'NOT ok';

“赞”按钮使用 AJAX,关于如何防止服务器端垃圾邮件的任何想法?

【问题讨论】:

  • 什么不起作用?发生了什么事?
  • @user790454 大部分时间都说“不行”。
  • @SurgeonofDeath 代码本身没有问题,但逻辑没有问题。你能提供一种方法来防止来自按钮的垃圾邮件吗?
  • 你可以用 JQuery / Javascript 来做,但他们仍然可以修改它。看看这个:phpro.org/tutorials/Preventing-Multiple-Submits.html

标签: php ajax codeigniter button spam


【解决方案1】:

您可以尝试这种替代解决方案,即您可以创建一个链接为“LIKE”和“UNLIKE”。当用户单击“LIKE”时,将状态(假设为 1)更新到该特定帖子或评论,并在显示逻辑时检查 if status == 1 它应该显示“UNLIKE”或“LIKE”链接。当用户点击“UNLIKE”时,更新状态(假设为 0)。因此,由此可以提供垃圾点击,并且一次只会显示一个链接。

【讨论】:

  • SO 上的“Upvote”按钮以这种方式工作。现在,您如何确定所有“喜欢”都来自同一个实体? IP地址? CSRF 代币?两者都很容易解决。
  • 您还可以获取和更新“喜欢”来自的 ipaddress 并根据您的条件检查。
  • @Rushikesh 这正是我实现它的方式,问题是我试图防止对数据库进行不必要的查询,这是我问题的重点。
  • 你可以在用户点击“like”时存储该ip地址,当你改变like状态时,可以在显示时查看存储的ip地址和pc 的 ip 地址,如果它们相同,请不要显示“like”链接或您要检查的其他条件..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多