Security 需要保护基于JMS的服务器进程和数据库的想法吗

Security 需要保护基于JMS的服务器进程和数据库的想法吗,security,jms,Security,Jms,我有一个作为Eclipse插件免费分发的工具,这意味着我无法跟踪谁使用它或要求他们注册 每个客户机工具都通过JMS代理与单个共享服务器进程(用Java编写)通信,并可以接收回复消息。服务器通过Hibernate连接到MySQL数据库 目前,该工具发送的唯一消息是数据请求,服务器获取该消息并向客户端发送表示元素的大量XML数据,客户端在IDE中显示相应的项。因此,我认为除了DoS攻击之外,对服务器没有什么可以做的 但是,现在我想添加以下功能:用户可以为特定元素分配评级(由数字id标识),并向服务器

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

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

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

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

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

这是DoS的问题,我不知道如何解决它

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

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


我相信还有其他的…

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

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