2013-01-22 49 views
0

我有一个使用SSL EV证书进行安全保护的Web服务。可以说它位于: https://webservice.justawebservice.com/webservice/。用户可以将消息发送到此Web服务。如何确保Web服务位置?

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

我想确保这个区域安全,所以当这个人去链接时,他会被要求进行某种认证。

这样做的最好方法是什么? (如果可能)

任何帮助是极大的赞赏,

谢谢!

回答

2

如果你的目标是防止DOS攻击类型,然后验证“与请求洪水”是不是做的正确的方式,因为即使正确地验证客户端可能会导致由不理解如何使用API​​或自然洪水他的代码中的错误等

正确的方法恕我直言将是在你的代码中开发某种'断路器'模式(可能是WS拦截器),它会查看来自特定用户或来自IP地址或全部或全部上述内容),并通过将错误返回给调用者来快速执行调用,因此不会占用系统上的大部分资源。

这将是一个很好的第一步,但不能完全保证免受DOS攻击(因为你的服务仍然会消耗资源来接受请求并解释它)。下一步就是尝试在尽可能低的层面阻止这类客户 - 例如在防火墙上丢弃TCP数据包 - 有几个防火墙包可以简化这项任务 - 例如法新社用ddos放气等等。

+0

感谢您的输入!我将讨论这些想法。 – Jef

+0

你知道是否可以使用用户名和密码保护此webservice的URL?当有恶意的人获得这个URL时,他会被要求进行认证。 – Jef

+1

如果你想让你可以访问你的WS方法中的HTTP头并从那里获取用户名/密码,模仿简单的HTTP身份验证机制:webServiceContex.getMessageContext().get(“Username”)等返回HTTP 401(未授权)在认证失败。更好的做法是在WS拦截器中进行 – maximdim

1

一个soley人/用户不会是问题,但可以创建一个机器人,这洪水您的服务。

选项:

  • 在防火墙上水平,不断泛滥包away
  • 使用客户端认证与client certificate。大多数机器人在需要客户认证时放弃。
+0

感谢您的输入!现在阅读这些链接,我已经在我的工作环境中早些时候听说过客户端证书(我是实习生)。该教程看起来很有希望再次感谢! – Jef

+0

你知道是否可以使用用户名和密码来保护此webservice的URL?当有恶意的人获得这个URL时,他会被要求进行认证。 – Jef