2009-12-18 75 views
1

我一直工作在一個Web應用程序,可能是易濫用的用戶,尤其是垃圾評論/賬戶。我知道的reCAPTCHA會照顧機器人至於假冒用戶所關注的,但它不會做那些誰創建一個帳戶,用戶任何東西,莫名其妙地把自己的垃圾評論的自動駕駛儀(像我見過的在twitter上無數次) 。處理用戶濫用軌

,我已經想出瞭解決的辦法是使任何用戶都可以檢舉其他使用者,然後有標記的用戶列表(布爾屬性)上來就只能由管理員訪問的用戶index動作。然後,已標記可以成爲候選人,禁止用戶(另一個布爾屬性)或經久不衰。被禁止的用戶仍然可以訪問該網站,但會大大降低權限。由於某些原因,我不想完全刪除用戶。

然而,當我想到這一點,我意識到,要通過標記的用戶列表來決定哪些應該被禁止或沒有旗可能是潛在的非常耗時的管理。短僱人做不懈/用戶禁止的,是有一個更加自動化和優雅的方式來進行此事?

回答

1

「網絡2.0」之前,網站是由管理員主持。現在,目標是讓社區適應自己。 StackOverflow本身是一個奇妙的案例研究。該reputation system使用戶能夠承擔更多的「行政」任務,因爲他們證明自己值得信賴。如果你允許用戶標記對方,你就已經走上了這條道路。至於該系統的細節(誰可以標記,取消標記,並禁止),我會說你應該看看各種成功的網絡社區(如StackOverflow的),看看他們是如何工作的,以及如何成功的他們。最後,可能需要一些試驗和錯誤,因爲所有的社區都有所不同。

如果您想編寫一些代碼,您可以創建一個腳本來查找垃圾郵件發送者的典型使用模式(例如,在多個頁面上發佈相同的評論),儘管我認爲目標應該是發展一個這樣做的社區爲你。這可能更多的是關於計劃而不是編程。

+0

我真的很喜歡這個想法,我不希望一些隨機用戶標記其他用戶的威利願意不願意。我真的很喜歡StackOverflow的聲譽系統。感謝您的建議! – 2009-12-18 23:27:28

6

我會創建一個名爲abuses的表,其中包含報告的用戶和提交報告的用戶。而不是標記的布爾字段,我建議有一個計數器緩存列,如「abuse_count」。當此列達到預定義值時,您可以自動「禁止」用戶。

+0

很棒的建議!我可能只是實現這一個。 – 2009-12-18 23:24:44

1

一些複雜的垃圾郵件發送者都樂於花時間打破您的驗證碼,如果他們覺得獎勵是足夠高。你也應該考慮在尋找一個郵件服務器,如Akismet在對其中有一個很大的Rails插件(https://github.com/joshfrench/rakismet)。

還有其他的選擇,比如defensio(https://github.com/thewebfellas/defensio-ruby)以及我發現一次的寶石,這些寶石在檢測常見的博客垃圾郵件方面效果很好,但是我無法在我的生活中再次發現它。