2009-01-25 33 views
0

我有一個作爲Eclipse插件自由分發的工具,這意味着我無法跟蹤誰使用它或要求他們註冊。需要關於保護基於JMS的服務器進程和數據庫的想法

每個客戶端工具都通過JMS代理與單個共享服務器進程(用Java編寫)進行通信,並且可以接收消息作爲回覆。服務器通過Hibernate連接到MySQL數據庫。

目前,該工具發送的唯一消息是對數據的請求,服務器獲取該消息並向客戶端發送表示元素的大量XML數據,該客戶端在IDE中顯示相應的項目。因此,除了DoS攻擊之外,我認爲服務器沒有太多的工作要做。

但是,現在我想添加以下功能:用戶可以爲特定元素(由數字ID標識)分配評級,並將消息發送到服務器,該服務器將評級作爲事件在評級事件表中。當下一次數據請求進入時,每個項目的平均評級將與請求一起發送。

我的問題是,我從來沒有部署過使用這種公共服務器的工具,即使它被JMS代理隱藏。什麼樣的攻擊可以部署在我身上,我怎樣才能防禦他們?

存在DoS問題,我不知道如何解決它。

有注入的可能性,但我所有的數據都是數字,我不知道hibernate如何處理事情。

有垃圾郵件或虛擬投票的問題,我真的不知道如何解決這個問題。

我敢肯定還有其他的...

回答

1

關於虛擬投票,這是不安全的(也就是說,它不會爲選舉目的是可以接受的!),但它是一種簡單的機制:

在服務器上創建一個GUID,將其存儲在適當的表中併發送給客戶端。當客戶投票時,它會發回與數據庫相比較的GUID。如果GUID有效,請接受投票並刪除DB存儲的GUID。