0
这是情景:预期CSRF令牌没有发现春季安全
我使用Spring Security的4.0.1,已默认启用CSRF,和一切工作确定,直到昨天。
昨天我添加了Spring Security Tags,登录(和其他表单工作正常),但是一个特殊的表单停止工作。
这种形式的多,因为上传两个文件,这种形式有CSRF参数,但服务器返回:
HTTP状态403 - 预期CSRF令牌没有找到。您的会话 是否已过期?
这是基本形式:
<form id="documentForm" class="card-panel" method="POST" enctype="multipart/form-data" action="<c:url value="/documents/signDocument?${_csrf.parameterName}=${_csrf.token}"/>">
<input type="file" name="document"/>
<input type="text" name="signer"/>
</form>
当然,这是形式的完全切断的版本,但是请注意CSRF参数正在通过行动网址发送。是的,我试着将CSRF参数放在隐藏的输入中,结果相同。
在一个侧面说明,这种形式可以为匿名用户访问
为了避免将令牌放入URL中,可以将标记添加到HTML标头的元标记中,然后将其添加到XHR请求标头中,就像我在这里描述的那样http://stackoverflow.com/questions/21514074/弹簧CSRF令牌此结果不功时最请求待发送-是-A-多部分热曲/ 43122490#43122490 –