Java 如何保护web服务位置?

Java 如何保护web服务位置?,java,web-services,security,authentication,jax-ws,Java,Web Services,Security,Authentication,Jax Ws,我有一个用SSL EV证书保护的web服务。假设它位于: https://webservice.justawebservice.com/webservice/。用户可以向此web服务发送消息 当恶意的人获得该URL的所有权时,该人可以向WSDL和web服务显示该位置。但最重要的是,他将能够发送信息。web服务上有某种身份验证,但仅在发送消息时发生(消息包含用户名和密码)。一个恶意的人将能够用大量的消息淹没Web服务,这可能会导致它离线 我想保护这个区域,所以当这个人去链接时,他会被要求进行某种身

我有一个用SSL EV证书保护的web服务。假设它位于:
https://webservice.justawebservice.com/webservice/
。用户可以向此web服务发送消息

当恶意的人获得该URL的所有权时,该人可以向WSDL和web服务显示该位置。但最重要的是,他将能够发送信息。web服务上有某种身份验证,但仅在发送消息时发生(消息包含用户名和密码)。一个恶意的人将能够用大量的消息淹没Web服务,这可能会导致它离线

我想保护这个区域,所以当这个人去链接时,他会被要求进行某种身份验证

最好的方法是什么?(如果可能的话)

非常感谢您的帮助


谢谢

一个单独的人/用户不会成为问题,但可以创建一个机器人,让你的服务泛滥

选项:

  • 在防火墙级别上,保持泛洪包
  • 将客户端身份验证与。大多数机器人在需要客户端认证时放弃

    • 一个单独的人/用户不会成为问题,但可以创建一个机器人,让你的服务泛滥

      选项:

      • 在防火墙级别上,保持泛洪包
      • 将客户端身份验证与。大多数机器人在需要客户端认证时放弃

      如果您的目标是防止DOS类型的攻击“请求泛滥”,那么身份验证不是一种正确的方法,因为即使是经过适当身份验证的客户端也可能由于不了解如何使用API或其代码中的错误等而导致泛滥

      IMHO的正确方法是在代码中开发某种“断路器”模式(可能是WS-interceptor),通过将错误返回给调用者来查看来自(特定用户或ip地址或全部或全部)的请求数和快捷调用执行,因此,不会占用系统上的大量资源


      这将是很好的第一步,但不能完全保证不受DOS攻击(因为您的服务仍然会消耗资源来接受请求并解释它)。下一步是尝试在尽可能低的级别上阻止此类客户端—例如,在防火墙上只是丢弃TCP数据包—很少有防火墙软件包可以简化此任务—例如,带有ddos泄气的AFP等等。

      如果您的目标是防止DOS类型的攻击“请求泛滥”,则身份验证不是正确的做法即使是经过适当身份验证的客户机,由于不理解如何使用API或代码中的错误等原因,也可能导致洪水泛滥

      IMHO的正确方法是在代码中开发某种“断路器”模式(可能是WS-interceptor),通过将错误返回给调用者来查看来自(特定用户或ip地址或全部或全部)的请求数和快捷调用执行,因此,不会占用系统上的大量资源


      这将是很好的第一步,但不能完全保证不受DOS攻击(因为您的服务仍然会消耗资源来接受请求并解释它)。下一步将尝试在尽可能低的级别上阻止此类客户机-例如,在防火墙上只是丢弃TCP数据包-很少有防火墙软件包可以简化此任务-例如,带有ddos deflate的AFP等。

      感谢您的输入!现在阅读这些链接,我在我的工作环境(我是实习生)中听到了“客户证书”这个词。这本教程似乎很有希望。再次感谢!您知道是否可以使用用户名和密码保护此Web服务的URL吗?当恶意用户获取此URL时,将要求其进行身份验证。感谢您的输入!现在阅读这些链接,我在我的工作环境(我是实习生)中听到了“客户证书”这个词。这本教程似乎很有希望。再次感谢!您知道是否可以使用用户名和密码保护此Web服务的URL吗?当恶意用户获取此URL时,将要求其进行身份验证。感谢您的输入!我将讨论这些想法。您知道是否可以使用用户名和密码保护此Web服务的URL?当恶意用户获取此URL时,将要求其进行身份验证。如果需要,可以在WS方法中访问HTTP头并从中获取用户名/密码,模拟简单的HTTP身份验证机制:webServiceContex.getMessageContext().get(“用户名”)等。返回HTTP 401(未授权)身份验证失败时。更好的方法是在WS-InterceptorTanks中为您的输入完成它!我将讨论这些想法。您知道是否可以使用用户名和密码保护此Web服务的URL?当恶意用户获取此URL时,将要求其进行身份验证。如果需要,可以在WS方法中访问HTTP头并从中获取用户名/密码,模拟简单的HTTP身份验证机制:webServiceContex.getMessageContext().get(“用户名”)等。返回HTTP 401(未授权)身份验证失败时。最好是在WS-interceptor中实现