Spring security的CSRF令牌-我可以使用纯HTML还是需要JSP?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring security的CSRF令牌-我可以使用纯HTML还是需要JSP?相关的知识,希望对你有一定的参考价值。
您能否告诉我是否有任何方法可以在pure HTML(不是JSP)内部使用Spring Security的CSRF令牌?我的旧应用程序使用JSP,并轻松接收spring security的CSRF令牌:
<%-- index.jsp: --%>
<form method="post"...>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
...
Or:
<head>
<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>
...
现在我工作的公司希望转为无模板的纯html:
<!-- index.html: -->
<html>
...
Pure <form> and javascript, but how can we receive CSRF here?
[我们公司是老手,新手,只是告诉我们JSP已经过时了,现代团队应该使用干净的“ .html”页面,前端团队可以在不运行服务器的情况下进行测试。我们愿意尝试,但该顾问缺乏CSRF经验,因此无法帮助您进行设置。
谢谢。
Thymeleaf是您的情况的考虑因素。它的功能之一是可以使用纯HTML进行原型制作,但它仍然是传统的服务器端呈现页面,例如JSP。意味着您可以直接打开html,但是在服务器中部署后仍然具有动态内容。
使用CSRF,Thymeleaf会自动将隐藏输入输入到您的表单中。但是您也可以继续在meta标签中包含CSRF令牌。
现在,如果您要使用带有React,Vue,Angular等SPA的纯HTML / JS,则需要通过Cookies通过Spring Security的CookieCsrfTokenRepository或have an REST endpoint来迁移CSRF保护。通过XHR的CSRF。
以上是关于Spring security的CSRF令牌-我可以使用纯HTML还是需要JSP?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Spring Security 创建 CSRF 令牌
Spring Security - CSRF - 如何重置 CSRF 令牌并记录潜在的 CSRF 攻击(OWASP 推荐)