1

我有一个没有任何表单的网络应用程序(禁用了网络服务器中的所有表单请求)。它只有几个公共 URL(在 URL 中有一些 GET 参数)。没有登录,它不使用任何cookies。

我需要为这个 Web 应用程序提供 CSRF 保护吗?

4

2 回答 2

1

只有使用 cookie 的域才需要 XSRF 或 CSRF 保护。即使请求来自不受您控制的网页,对您网站的每个请求都带有您的 cookie。当您在服务器上修改状态时,这是最重要的,但在某些情况下,即使在状态未更改的情况下它也很有用。

http://j.mp/learn-xsrf包含有关 XSRF 以及如何避免它的简短教程,并允许您实际尝试一下。

如果您有一个用户看到的图像以识别他们在您的真实站点上,那么您可能存在带有非状态更改请求的 XSRF 漏洞的一个示例。一些银行这样做,每个用户的形象都不同。但是,如果该图像使用依赖于 cookie 的静态 url 提供,则它很容易受到 XSRF 的攻击,并且可以很容易地托管在攻击者的站点上。您可以通过在 url 中包含 XSRF 令牌来避免该问题。(仅仅为每个用户使用不同的 url 是不够的。)

于 2012-10-15T23:27:33.237 回答
0

CSRF 保护通常适用于您希望确保用户提交来自您自己站点的请求的表单(即,不是<img>其他站点上的某些标签利用)。此外,如果您在公共页面上使用 CSRF 令牌,它只是一个小的保护屏障。这意味着,攻击者总是可以定期 DOM 抓取您的网站并获取令牌以在他们自己的网站上使用,因为这些页面是公开的。这是攻击者必须做的更多工作,但攻击者仍然可以公开使用。CSRF 令牌真正适用于私人(登录后)页面上的表单。

于 2021-12-06T20:26:06.977 回答