2012-09-03 66 views
1

在討論板,圖像託管等應用程序中爲用戶實施限制的最佳方式是什麼?如何爲每個用戶的用戶生成內容量設置限制

假設我們想爲StackOverflow設置限制。匿名用戶應該能夠每12小時發佈50個問題,每12小時註冊用戶100個。

我想過創建數據庫並存儲有關IP /用戶及其帖子的信息。數據將在12小時後刪除。

但是,這樣的解決方案很容易被黑客入侵。一個IP不應該產生超過100個問題,但是如果一個用戶在同一個IP上創建多個賬戶會怎樣?每個帳戶都有自己的限制,因此用戶可以生成無限量的問題。

我將不得不限制每個IP帳戶的數量(什麼與學校/其他地方有很多用戶和單個IP?)。

+0

如果你擔心有人會發送垃圾郵件,你只需實施一些垃圾郵件機器人對策,如驗證碼,電子郵件驗證,蜜罐...... –

+0

單個用戶可以通過10個驗證碼並創建10封電子郵件這麼大的努力。 –

回答

1

我可以在這個主題上寫幾個月。這是一個難以解決的超級難題,如果這對你來說是一個真正的問題,隨着你的前進,你會一遍又一遍地解決它。

如果在您的網站上投入大量內容有價值,那麼隨着規模的擴大,壞人會發現這一點,並繞過您的防禦。你需要看看他們在做什麼,調整和解決問題。這就是爲什麼GMail垃圾郵件團隊依然存在。:)這個團隊的口袋深厚,聰明的加爾/傢伙。如果它是「可解決的」,他們現在就可以解決它。

做一些像你上面描述的是一個很好的開始。我還會投資儀器&將數據推送到一個平臺,您可以在這個平臺上分析它(例如:Hadoop集羣)。通過這種方式,您可以研究活動現場的流量,看看您是否有問題,如果是,請了解他們如何做,以便您能夠適應。

歡迎來到加利福尼亞州的酒店......你可以在任何時候退房,但你永遠不會離開。

0

大多數系統使用基於IP的未經身份驗證的用戶以及經過身份驗證的用戶的每個帳戶。如果人們要註冊多個帳戶來規避您的安全,那麼您可以使用captcha刪除漫遊器和/或新帳戶的冷靜期,然後才允許發佈或甚至使用基於IP的帳戶,直到帳戶至少達到24小時。

+0

那麼,1天帳戶不再是威脅了? –

+0

時間表取決於您,但只要足夠長時間就會失去人們的注意力。限制帳戶的方式有很多,直到他們證明自己是真實的,這一切都取決於您正在實施的系統以及真正將用戶與濫用者分開的方式。 – Mike

0

你已經回答了你的問題,如果我是你,我會做以下幾件事:1。 每個IP 2.創建的帳戶數限制設置它保持在過去12小時創建的內容記錄或計數器DB 3.對於訪客,然而可能會非常棘手,您可以使用IP + cookie來跟蹤用戶的活動,但是如果單個代理後面有許多用戶,則可能會出現問題。爲此,要麼你必須犧牲你的規則,要麼是嚴格的。

我已經看到很多網站,當我在代理後面,他們說你已經訪問過這個網站,但我從來沒有。

+0

我無法限制每個IP帳戶的數量。與使用共享IP,熱點等的人有什麼關係? –

+0

@GuryMax NAT/PAT後面的客戶端具有與不同端口號相同的IP,但不能用作相關數據,因爲用戶可以打開另一個瀏覽器或另一個瀏覽器實例並獲取另一個端口號 - 但它不會阻止其他用戶IP發佈問題 –

+0

因此,這不是一個解決方案 –

0

這不會解決你的問題100%,並且可能會帶來其他一些英寸

而不是使用完全匿名用戶和註冊用戶,並檢查IP的,匿名用戶應提供有效的電子郵件,覈查和臨時標識符(每次發佈問題時都不會公開顯示ofc)。

由於他們發佈的問題將隨着電子郵件和一起保存,他們應該收到問題激活鏈接在他們的郵箱

如果他們點擊電子郵件中的鏈接,問題被激活併發布,所以電子郵件服務器作爲臨時標識符而不是客戶端IP。

好的,有些人可能會像使用10個不同的電子郵件帳戶一樣使用,並向您發出垃圾郵件問題,甚至可能會嚇跑一些人。

+0

電子郵件激活不是一個選項。匿名必須是匿名的。簡單而快速。我的解決方案帶來了什麼其他問題? –