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 –