2017-04-18 21 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將是一個獨特的喜歡那篇文章。 我認爲這會對你有所幫助。 如果在我的答案中有任何錯誤,我表示歉意。