0

我有一个作为 Eclipse 插件免费分发的工具,这意味着我无法跟踪谁使用它或要求他们注册。

每个客户端工具都通过 JMS 代理与单个共享服务器进程(用 Java 编写)进行通信,并且可以接收消息作为回复。服务器通过 Hibernate 连接到 MySQL 数据库。

目前,该工具发送的唯一消息是数据请求,服务器获取该消息并将表示元素的大量 XML 数据发送给客户端,客户端在 IDE 中显示相应的项目。因此,我认为除了 DoS 攻击之外,对服务器没有什么可做的。

但是,现在我想添加以下功能:用户可以为特定元素(由数字 id 标识)分配评级,并且将向服务器发送一条消息,该服务器会将评级作为事件存储在评级中事件表。当下一个数据请求进入时,每个项目的平均评分将与请求一起发送。

我的问题是我从未部署过使用这样的公共服务器的工具,即使它被 JMS 代理隐藏了。可以针对我部署哪些攻击,我该如何防御它们?

存在 DoS 问题,我不知道如何解决。

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

存在垃圾邮件或虚拟投票的问题,我真的想不出如何解决这个问题。

我确定还有其他人...

4

1 回答 1

1

关于虚拟投票,这是不安全的(即它不能用于选举目的!)但它是一个简单的机制:

在服务器上创建一个 GUID,将其存储在适当的表中并发送给客户端。当客户端投票时,它会发回与数据库进行比较的 GUID。如果 GUID 有效,则接受投票并删除 DB 存储的 GUID。

于 2009-01-26T01:05:47.493 回答