2013-01-13 51 views
0

方案易客戶賬號=易濫用嗎?

我建立一個的Node.js/socket.io(express.js,MongoDB的,passport.js,socket.io)網頁遊戲。用戶必須先登錄才能玩。

我正在考慮在頭版上使用socket.io在mongodb中創建一個隨機指定的訪客帳戶,並將玩家註冊到遊戲中。除非用戶註冊,否則該訪客帳戶將在48小時內銷燬。

濫用此方法的一種方法可能是編寫一個腳本,反覆點擊「立即嘗試」按鈕以使用訪客帳戶來洪泛我的數據庫。

問題

是否有辦法避免這種情況沒有完全成熟的註冊?我可以在「立即嘗試」旁邊放置一個驗證碼,但除非真的需要,否則我寧願不使用驗證碼。

回答

1

有些方法可以在沒有CAPTCHA的情況下做到,但這不是完美的解決方案。

  1. 您可以爲該客戶端的sessionid設置一個隨時間變化的cookie。如果用戶有會話,此會話ID可能會阻止「立即嘗試」按鈕。這可能會被其他瀏覽器繞過,您的cookie不會被存儲。或者只是當用戶刪除cookie時
  2. 不建議,如果您掃描用戶IP地址並實施防汛保護(例如,此IP地址可能會在10分鐘內擊中該按鈕,否則會阻止它)。但是這對於共享和NAT下的操作來說是非常不愉快的。考慮不要做這個。
  3. 否則,您可以考慮掃描新建立的用戶的活動,並且如果在開始的幾分鐘內根本沒有任何活動,他們的帳戶將被銷燬並且應該重新創建。

這些都是可能工作的想法。

+0

感謝您的輸入〜 – Legendre