Java 如何保护API免受恶意使用

Java 如何保护API免受恶意使用,java,angularjs,rest,Java,Angularjs,Rest,我们正在使用JavaSpring和AngularUI开发一个社区门户服务。我们也将很快推出Android应用程序。我们的后端通过RESTAPI公开了许多服务。有两种服务允许匿名发布和创建服务请求 以下是我们的问题: 我们如何保护API免受DDoS攻击?我们可以为某些API设置IP白名单或对每分钟的请求设置上限吗 我们如何记录这些恶意请求 “匿名发布/创建服务请求”似乎很邪恶。“我们可以做IP白名单吗”=>是的,您可以在控制器方法中注入HttpServletRequest,并用它做您想做的事情。

我们正在使用JavaSpring和AngularUI开发一个社区门户服务。我们也将很快推出Android应用程序。我们的后端通过RESTAPI公开了许多服务。有两种服务允许匿名发布和创建服务请求

以下是我们的问题:

  • 我们如何保护API免受DDoS攻击?我们可以为某些API设置IP白名单或对每分钟的请求设置上限吗
  • 我们如何记录这些恶意请求

“匿名发布/创建服务请求”似乎很邪恶。“我们可以做IP白名单吗”=>是的,您可以在控制器方法中注入HttpServletRequest,并用它做您想做的事情。“对每分钟的请求设置上限”=>我问了自己同样的问题。没有找到任何预先实现的解决方案,但它似乎也很容易做到。@ArnaudDenoyelle我知道它的邪恶。。但它的公共/政府网站,在那里任何社区成员都可以发布报告而不暴露自己。我们也不能强制执行帐户注册。如果该服务必须允许匿名发布,那么对于有人决定发出恶意请求,您也无能为力。但是,在DDoS保护方面,您希望请求通过代理运行,并让代理限制每分钟的请求数,以便它接受性能影响,而不是服务器。然后在日志记录方面,你只需注意到IP发出了太多的请求,如果是真的,可能会将其列入黑名单problem@ma_dev_15向无法强制执行授权的端点添加授权是如何解决的?如果您在“匿名发布/创建服务请求”中提出这样一个问题,您可能会得到很好的答案。这似乎很糟糕。“我们可以做IP白名单吗”=>是的,您可以在控制器方法中注入HttpServletRequest,并用它做您想做的事情。“对每分钟的请求设置上限”=>我问了自己同样的问题。没有找到任何预先实现的解决方案,但它似乎也很容易做到。@ArnaudDenoyelle我知道它的邪恶。。但它的公共/政府网站,在那里任何社区成员都可以发布报告而不暴露自己。我们也不能强制执行帐户注册。如果该服务必须允许匿名发布,那么对于有人决定发出恶意请求,您也无能为力。但是,在DDoS保护方面,您希望请求通过代理运行,并让代理限制每分钟的请求数,以便它接受性能影响,而不是服务器。然后在日志记录方面,你只需注意到IP发出了太多的请求,如果是真的,可能会将其列入黑名单problem@ma_dev_15向无法强制执行授权的端点添加授权是如何解决的?如果您在上问了这样一个问题,您也会有很好的答案