【问题标题】:How can an API application be vulnerable to CSRF?API 应用程序如何容易受到 CSRF 的攻击?
【发布时间】:2013-08-02 10:51:11
【问题描述】:

我有一个 Web API 应用程序并为其配置了 SSL。

我们的身份验证机制是通过标头。每个请求都必须包含一对密钥,我们将根据我们的数据库验证它们。我们没有使用 Forms/Basic 或 Digect 身份验证。

我只是想知道我们是否必须针对跨站点请求伪造 (CSRF) 问题采取任何措施?是否适用于这种情况?

我想是因为我们没有使用 cookie,所以它应该是安全的。

【问题讨论】:

    标签: asp.net security asp.net-web-api csrf


    【解决方案1】:

    确实,如果用户的浏览器自动推送一些攻击者没有的凭据,那么强制另一个用户执行请求只会对攻击者有利。可以是:

    • 授权cookie
    • HTTP 身份验证(基本/摘要/Windows 身份验证)
    • TLS 会话 ID(在 HTTPS 中)
    • 来自 IP 地址或网络位置(例如 Intranet 站点)的隐式授权

    如果您不依赖任何此类凭据,则无需防御 CSRF 攻击。

    【讨论】:

    • 谢谢,我们不依赖任何 cookie、会话或 http 身份验证。但是,我们在服务器上确实有 IP 地址限制,这只是我们的标头令牌安全性之上的附加层。
    • 好的,所以在这种情况下,您缺乏 CSRF 保护确实会降低您的 IP 地址限制的有效性。攻击者仍然需要一个密钥对来填充凭证标头,但现在他们可以从授权 IP 范围之外通过劫持该范围内的浏览器(使用来自另一个站点的 XMLHttpRequest 以便可以设置标头)。如果您不确定凭证检查本身是否足够,并且希望确保执行 IP 限制,则需要 CSRF 保护。
    猜你喜欢
    • 2015-06-08
    • 2013-05-30
    • 2023-04-07
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2011-09-07
    相关资源
    最近更新 更多