当前位置: 首页 > 知识库问答 >
问题:

JSON web服务易受CSRF攻击吗?

仲孙景胜
2023-03-14

我正在构建一个专门使用JSON作为请求和响应内容的网络服务(即,没有表单编码的有效载荷)。

如果以下情况属实,web服务是否容易受到CSRF攻击?

>

  • 任何没有顶级JSON对象的POST请求,例如,{"foo":"bar"},将被400拒绝。例如,内容为42POST请求将因此被拒绝。

    任何具有Application/json以外的内容类型的POST请求将被400拒绝。例如,具有内容类型Application/x-wow-form-urlencodedPOST请求将因此被拒绝。

    所有GET请求都是安全的,因此不会修改任何服务器端数据。

    客户端通过会话cookie进行身份验证,web服务会在客户端通过带有JSON数据的POST提供正确的用户名/密码对后提供会话cookie,例如,{“username”:user@example.com“,“密码”:“我的密码”}

    附带问题:PUTDELETE请求是否容易受到CSRF的攻击?我这么问是因为似乎大多数(所有?)浏览器不允许超文本标记语言形式中的这些方法。

    编辑:添加项目#4。

    编辑:到目前为止,有很多好的评论和答案,但是没有人提供此web服务易受攻击的特定CSRF攻击。

  • 共有3个答案

    慕意致
    2023-03-14

    可以使用Ajax在基于JSON的Restful服务上执行CSRF。我在一个应用程序(同时使用Chrome和Firefox)上对此进行了测试。为了避免飞行前请求,您必须将contentType更改为text/plain,将dataType更改为JSON。然后可以发送请求,但为了发送sessiondata,需要在ajax请求中设置withCredentials标志。我在这里更详细地讨论了这一点(包括参考文献):

    http://wsecblog.blogspot.be/2016/03/csrf-with-json-post-via-ajax.html

    柴晔
    2023-03-14

    是的,这是可能的。您可以设置一个攻击者服务器,该服务器将向目标服务器发回307重定向到受害者机器。你需要使用flash来发送帖子,而不是使用表单。

    参考:https://bugzilla.mozilla.org/show_bug.cgi?id=1436241

    它也适用于铬。

    阎晋
    2023-03-14

    只有使用XHR才能有效地伪造具有任意媒体类型的任意CSRF请求,因为表单的方法仅限于GET和POST,表单的POST消息体也仅限于三种格式Application/x-www-form-urlencodedMultipart/form-数据文本/普通。但是,使用表单数据编码文本/普通,仍然可以伪造包含有效JSON数据的请求。

    因此,唯一的威胁来自基于XHR的CSRF攻击。只有当它们来自同一个来源,所以基本上是从你自己的网站(例如XSS)获得成功。小心不要将禁用CORS(即未设置访问控制允许源代码:)误认为是一种保护。CORS只是阻止客户端读取响应。整个请求仍然由服务器发送和处理。

     类似资料:
    • 什么是CSRF CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 那么CSRF到底能够干嘛呢?你可以这样简单的理解:攻击者可以盗用你的登陆信息,以你的身份模拟发送各种请求。攻击者只要借助少许的社会工程学的诡计,例如通过QQ等聊天软件发送的链接(有些还伪装成

    • 请澄清我对CSRF攻击的概念。在csrf中,我们从隐藏字段发送令牌,即, 我们会在会议的基础上提交表格。如果攻击者找到我的表单并更改隐藏值并提交表单,则他将成功。我怎样才能防止形成。

    • 我正在开发一个java web应用程序,应该非常安全,所以我在SSL服务器上应用了spring security和spring MVC,并启用了CSRF;我使用POST成功地提交了所有表单和生成的CSRF令牌,但是有些页面有GET方法,如果任何攻击者从任何浏览器打开任何页面的源代码,他可以在表单标记中看到生成的CSRF令牌,那么他可以使用它向我们的网站发布任何内容,只要会话由受攻击的用户激活!!我

    • 拒绝服务(DoS)攻击是黑客企图使网络资源不可用的一种攻击。它通常会临时或无限地中断主机,让正常使用的用户无法访问目标服务。这些攻击通常针对托管在关键任务Web服务器(如银行,信用卡支付网关)上的服务。 DoS的症状 网络性能异常缓慢。 特定网站不可用。 无法访问任何网站。 收到的垃圾邮件数量大幅增加。 长期拒绝访问网络或任何互联网服务。 特定网站不可用。 动手实践 第1步 - 启动WebGoat

    • 在本节中,我们将讨论如何对服务器端进行攻击。服务器端攻击不需要用户交互。这些攻击可以与Web服务器一起使用。我们也可以将它们用在人们每天使用的普通计算机上。为了进行这些攻击,我们将针对一个Metasploitable设备。我们将在Melasploitable设备上使用它的原因是,如果我们的目标使用个人计算机,并且如果它们与我们不在同一网络上,那么即使我们设法获取其IP地址,其IP地址同在于路由器的

    • 本文向大家介绍csrf 攻击是怎样攻击的? 如何防御相关面试题,主要包含被问及csrf 攻击是怎样攻击的? 如何防御时的应答技巧和注意事项,需要的朋友参考一下 get, post, delete, 分开, 避免使用get修改数据 避免让第三方站点访问cookie 对referrer进行验证 token 阻止第三方请求 .