【问题标题】:Protecting web service against malicious requests to crawl for all data?保护 Web 服务免受恶意请求抓取所有数据?
【发布时间】:2011-04-10 00:40:09
【问题描述】:

我们有一个 Web 服务,我们希望保护它免受恶意攻击,以发出大量请求以有效地从中获取所有数据。

我们对已签名和交换的令牌提供一定程度的保护,但坚定的攻击者可以获取这些令牌并在对我们的 Web 服务的请求中重放它们。

所以我认为唯一的保护是在服务器级别。一种想法是在特定时间间隔内实现请求阈值,它们会阻塞一段时间,如果在中断期间发出后续请求,该阈值会增加。经过多次尝试,彻底黑名单。

但是,我讨厌自定义滚动我们自己的解决方案甚至使用 IP 的想法,因为代理背后的一个不良用户会阻止该代理背后的其他所有人。

保护网络服务的最佳做法是什么?

更新:澄清一下,这是一个关于保护网络服务免受大规模数据收集的一般问题。

【问题讨论】:

    标签: web-services security


    【解决方案1】:

    目前有多种解决方案,但 IMO 是一个不错且安全的解决方案。在 SOAP 标头中使用 X.509 证书进行消息级别的身份验证。以下是有关该主题的一些链接:

    http://msdn.microsoft.com/en-us/library/ff648643.aspx

    http://msdn.microsoft.com/en-us/library/ff648129.aspx

    http://www.aspfree.com/c/a/VB.NET/Securing-Web-Services-with-X509-Certificates/

    How can I configure WCF to use x509 certificates over the internet?

    【讨论】:

    • 我对证书如何提供保护感到困惑。难道恶意客户端不能构成合法客户端,然后重放密钥来进行攻击吗?
    • 客户端必须使用证书对每条消息进行身份验证。 “伪造”证书非常困难。 :)
    • 仍然没有关注。 x509 证书如何保证这一点?如果您信任客户端并为其提供证书以在后续交互中使用,则攻击者可以拆开应用程序以获取证书并在另一个未经批准的场景中使用它。 IOW,x509 证书方法是否仅在您可以在客户端上的 TPM 之类的东西中保护证书/密钥时才有效?
    • 显然,如果攻击者获得了应用程序及其底层代码,那么你就是 S.O.L.消息级别的证书身份验证旨在保护消息不被拦截和解码。
    • 根据我最初的问题,拥有证书和受信任的客户并不是合理的假设。
    【解决方案2】:

    您并没有告诉我们太多有关数据/服务的信息,但我曾经致力于设计一个系统,该系统可以通过查看查询模式来检测攻击。

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 2011-08-03
      • 1970-01-01
      • 2012-11-18
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多