Roller如何拒絕惡意評論

如何界定惡意評論?Roller使用三個變量來判定,分別是:

1、用戶的ip;

2、單位時間;

3、單位時間內評論的最大次數;

 

 如果某個ip在單位時間內評論的次數大於指定的值,則將此ip加入黑名單。

 

實現過程如下:

在Roller中,關於評論處理是通過一個CommentServlet來處理的,CommentServlet在握住一個GenericThrottle對象,CommentServlet初始化時,讀入上面所說的兩個變量:單位時間和最大評論次數。

 

GenericThrottle類的作用是創建一個緩存,將每次提交的請求根據ip地址記錄一次,並累計和緩存起來。

 

CommentServlet根據GenericThrottle的累計和處理結果,見ip加到黑名單中。

 

那麼如何將ip加入到黑名單中呢?IPBanList類是做這個工作的。IPBanList在初始化的時候會讀入一個配置項,根據此配置項讀寫一個文本文件。如果這個文件不存在或者不能讀,則前面的邏輯都沒有效了。

 

IPBanList有一個添加黑名單的方法和一個判斷某個ip是否在黑名單中的方法。

 

加入某個ip已經被加到黑名單中了,Roller如何來防止這個ip再提交請求呢?IPBanLifter類會攔截所有關於評論的請求,如果這個ip再提交這個過濾器將立即跳到錯誤頁面。

 

完!

發佈了35 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章