代码之家  ›  专栏  ›  技术社区  ›  Dave Carpeneto

仅查看页面是否需要针对CSRF的预防措施?

  •  2
  • Dave Carpeneto  · 技术社区  · 11 年前

    CSRF攻击的所有示例都倾向于针对处理传入请求的页面。

    如果页面没有表单处理方面,我需要担心CSRF吗?

    我正在寻找的情况@:

    • 相关页面包含敏感数据
    • 因此,用户需要建立会话来查看页面

    ……我的理解是,恶意页面可以通过嵌入链接将客户端重定向到此页面,但是,由于目标上没有要执行的操作,因此不会造成任何伤害,对吧?

    没有办法说恶意网站可以 看法 敏感页,对吗?

    为什么我问: 我希望包含敏感数据的页面的url有一个“简单”的url,允许人们通过电子邮件将链接发送给其他人(他们反过来需要一个会话来查看页面)。我在大多数CSRF解决方案中看到的基于令牌的解决方案消除了这种可能性,因此我希望尽可能避免它们。

    2 回复  |  直到 11 年前
        1
  •  3
  •   bobince    11 年前

    恶意网站无法查看敏感页面,对吗?

    CSRF方面正确。

    你链接的博客谈论的是跨源脚本包容,这是一种不同的动物。为了容易受到XOSI攻击,您的敏感页面必须可以解释为JavaScript,并且您必须在没有正确的HTML MIME类型的情况下为其提供服务,或者浏览器必须是旧的浏览器,不能对脚本执行类型检查。

    您可能还可能担心点击劫持,因为另一个站点将您的站点包含在框架中,并覆盖误导性的UI元素。有一些偷偷摸摸的方法被用来提取敏感数据(参见 next generation clickjacking 纸张和 this Firefox中有趣的信息泄漏),所以您可能希望禁止使用 X-Frame-Options 头球

    我问的原因:我希望包含敏感数据的页面的url有一个“简单”的url,允许人们通过电子邮件将链接发送给其他人(他们反过来需要一个会话来查看页面)。我在大多数CSRF解决方案中看到的基于令牌的解决方案消除了这种可能性

    您绝对不应该在GET URL中放置CSRF令牌。除了导航的丑陋和破坏之外,URL很容易从浏览器或其他基础设施中泄漏,这可能会危及令牌的机密性。

    通常的做法是不对无副作用的动作施加CSRF保护。

        2
  •  2
  •   Gumbo    11 年前

    通常,CSRF与请求是否引起任何副作用无关。这个 CWE describes CSRF (CWE-352) 如下所示:

    web应用程序没有或无法充分验证提交请求的用户是否有意提供了格式良好、有效、一致的请求。

    因此,CSRF是一个一般的请求意图真实性问题。

    然而,虽然CSRF在没有数据检索以外的任何影响的情况下是不可行的,因为同源策略限制攻击者访问响应,但攻击者可以利用另一个漏洞从仅检索请求中获利,并获得对敏感数据的访问。

    推荐文章