ope*_*eek 4 rest web-services jax-rs csrf
我有一个RESTful API,其注释类似@Consumes(MediaType.JSON) - 在这种情况下,CSRF攻击是否仍然可以在这样的服务上进行?我一直在修补我在服务器端使用CSRFGuard保护我的服务,或者从客户端进行双重提交.但是,当我尝试使用带有enctype ="text/plain"的FORM来发送请求时,它不起作用.这里解释了这种技术.如果我在使用注释中有MediaType.APPLICATION_FORM_URLENCODED,则此方法有效.当我使用POST/PUT/DELETE谓词时,内容协商非常有用,但GET仍然可以访问,可能需要查看.
任何建议或输入都会很棒,如果您需要更多信息,请告诉我.
干杯
JAX-RS旨在创建应该是无状态的REST API.跨站点请求伪造不是无状态应用程序的问题.
Cross Site Request Forgery的工作方式是有人可能会欺骗您点击链接或在您的浏览器中打开一个链接,该链接将引导您进入您登录的网站,例如某些在线论坛.由于您已经登录该论坛,攻击者可以构建一个URL,例如:someforum.com/deletethread?id = 23454
该论坛程序设计糟糕,会根据会话cookie识别您,并确认您有能力删除该线程,并且实际上会删除该线程.
所有这些都是因为程序根据会话cookie验证了你(甚至基于"记住我"的cookie)
使用RESTful API,没有cookie,请求之间不维护状态,因此不需要防止会话劫持.
您通常使用RESTFul api进行身份验证的方式是发送一些额外的标头.如果有人欺骗你点击指向宁静API的网址,浏览器就不会发送额外的标题,所以没有风险.
简而言之 - 如果REST API按照它应该的方式设计 - 无状态,则不存在跨站点伪造的风险,也不需要CSRF保护.
| 归档时间: |
|
| 查看次数: |
2106 次 |
| 最近记录: |