这将产生以下JSON结构
{ "amount": 100,"routingNumber": "evilsRoutingNumber","account": "evilsAccountNumber","ignore_me": "=test"}如果应用程序未验证Content-Type,则该应用程序将被暴露 。
根据设置的不同,仍然可以通过更新URL后缀以.json结尾的方式来利用验证Content-Type的Spring MVC应用程序,如下所示:
<form action="https://bank.example.com/transfer.json" method="post" enctype="text/plain"> <input name='{"amount":100,"routingNumber":"evilsRoutingNumber","account":"evilsAccountNumber", "ignore_me":"' value=https://www.isolves.com/it/wl/aq/2021-01-15/'test"}' type='hidden'> CSRF和无状态浏览器应用程序如果我的应用程序是无状态的怎么办?
这并不一定意味着您受到保护 。
实际上,如果用户不需要针对给定请求在Web浏览器中执行任何操作,则他们可能仍然容易受到CSRF攻击 。
例如,考虑一个使用自定义cookie而不是JSESSIONID的应用程序,其中包含其中的所有状态用于身份验证 。
进行CSRF攻击后,自定义cookie将与请求一起发送,其方式与在前面的示例中发送JSESSIONID cookie相同 。
此应用程序容易受到CSRF攻击 。
使用基本身份验证的应用程序也容易受到CSRF攻击 。
该应用程序容易受到攻击,因为浏览器将以与前面示例中发送JSESSIONID cookie相同的方式在任何请求中自动包含用户名和密码 。
CSRF注意事项实施针对CSRF攻击的防护时,需要考虑一些特殊注意事项 。
登录为了防止伪造登录请求,应保护HTTP请求中的登录免受CSRF攻击 。
必须防止伪造登录请求,以使恶意用户无法读取受害者的敏感信息 。
攻击执行如下:
- 恶意用户使用恶意用户的凭据执行CSRF登录 。现在,将受害者验证为恶意用户 。
- 然后,恶意用户欺骗受害者访问受感染的网站并输入敏感信息
- 该信息与恶意用户的帐户相关联,因此恶意用户可以使用自己的凭据登录并查看vicitim的敏感信息
登出为了防止伪造注销请求,应该保护注销HTTP请求免受CSRF攻击 。
必须防止伪造注销请求,以便恶意用户无法读取受害者的敏感信息 。
确保注销HTTP请求免受CSRF攻击的可能麻烦在于,用户可能会遇到会话超时,从而导致请求被拒绝 。
会话超时对于不希望需要会话才能注销的用户来说是令人惊讶的
CSRF和会话超时通常,预期的CSRF令牌存储在会话中 。这意味着,会话期满后,服务器将不会找到预期的CSRF令牌并拒绝HTTP请求 。
有很多选项可以解决超时问题,每个选项都需要权衡取舍 。
减轻超时的最佳方法是使用JavaScript在表单提交时请求CSRF令牌 。然后使用CSRF令牌更新该表单并提交 。
另一个选择是使用一些JavaScript,让用户知道他们的会话即将到期 。用户可以单击按钮以继续并刷新会话 。
最后,预期的CSRF令牌可以存储在cookie中 。这允许预期的CSRF令牌超过会话寿命 。
有人可能会问为什么默认情况下预期的CSRF令牌没有存储在Cookie中 。
这是因为存在已知的漏洞利用,其中另一个域可以设置标头(例如,用于指定cookie) 。这与出现标题X-Requested-With时Ruby on Rails不再跳过CSRF检查的原因相同 。请参阅此webappsec.org线程以获取有关如何执行漏洞利用的详细信息 。
另一个缺点是,通过删除状态(即超时),您将失去在令牌遭到破坏时强制使令牌无效的能力 。
分段(文件上传)保护分段请求(文件上传)免受CSRF攻击会导致鸡和蛋的问题 。
为了防止发生CSRF攻击,必须读取HTTP请求的正文以获得实际的CSRF令牌 。
但是,读取正文表示文件将被上传,这意味着外部站点可以上传文件 。
将CSRF保护与 multipart/form-data 一起使用有两种选择 。
每个选项都有其取舍 。
- 将CSRF令牌放入 body
- 将CSRF令牌放入URL
推荐阅读
- Spring Cloud Eureka 详解
- 绿茶如何挑选,如何制作苦瓜茶
- 电动汽车如何保养
- mac删除后的文件恢复?mac误删的文件如何恢复_1
- windows10如何关闭windows安全中心,win10关闭Windows安全中心-
- 海瑞做了什么贡献 如何评价海瑞这个人
- 铜器鉴定方法 收藏铜器如何保存
- 龙眼菩提如何收藏挑选
- ipad如何更新到10以上版本?ipad能升级到10以上的有哪些_1
- jpg如何压缩图片大小-jpg图片太大怎么批量压缩-
