2017-04-18 20 views
1

我想创建一个“like”按钮。只是,我希望每个人都没有账号,“喜欢”一篇文章。用Laravel创建像Cookies和表格的按钮

在我的文章的表中,我可以添加一个“喜欢”字段和Ajax,增加字段+1?

它会造成安全问题吗?

为此使用cookie是个好主意吗?

非常感谢你

回答

2

仅使用cookie的保护很容易绕过。一个人或某种机器人能够为每篇文章提供大量的“赞”。

您可以阻止根据用户的IP给予多个“喜欢”的正确性。所以基本上创建另一个表格,如:

"article_id" 
"user_id" (nullable) 
"ip" (nullable) 

对于注册用户只需填写user_id字段。对于annonymus用户填充ip字段,并在向数据库添加新记录之前检查是否存在具有给定IP的记录。在你的模型喜欢

使用相对容易算来:

$this->likes->count(); 
+0

感谢您对这种反应。我明白如何打破这个问题。这是一个很好的解决方案,我没有想过以这种方式存储IP。 – Jeremy

1

有了cookie数据可以简单地进行等,但是攻击者清除浏览器的历史,让更多像那篇文章。 制作一些技巧,比如将IP地址或MAC地址插入到数据库中,但它也有一些错误,因为它们会更改代理IP并为此添加类似的内容。 简单的解决方案就像来自社交网络,如谷歌喜欢或Facebook like.This将是一个独特的喜欢那篇文章。 我认为这会对你有所帮助。 如果在我的答案中有任何错误,我表示歉意。