spring - Spring Boot 表单请求跟踪
问题描述
我正在开发一个 Spring Boot MVC 应用程序,并考虑如何实现双表单提交问题的解决方案。
我正在考虑的解决方案是生成一个唯一的 id 并在用户请求时将其附加到表单中。然后,当用户提交表单时,将收到的 id 与原始 id 进行比较,如果匹配,则发送。如果有更多请求进来,我可以看到这是重复提交并拒绝请求。
解决方案很简单,我希望我也能找到一个简单的实现。我有大约 8 种不同的 Thymeleaf 表单需要通过添加唯一 ID 来更新,我真的不想将 ID 添加到支持 Thymeleaf 表单的 POJO 中。有没有一种方法可以将唯一 ID 添加到将返回的 http 标头或类似的不需要更新 Java Pojos 的东西?谢谢
解决方案
您可以在表单中包含 CSRF 令牌,Spring 会自动处理它,但如果您尚未在项目中使用它,您可能需要包含 Spring Security。
例如
<form>
...
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>
推荐阅读
- python - 使用已覆盖注意力头的 BART 编码器运行拥抱脸 BART 模型解码器
- ssis - 在 Visual Studio 2019 中创建的 SSIS 无法在 Visual Studio 2010 中创建的应用程序中运行
- git - 如果在一个分支上完成并将功能合并到该分支中,工作是否会被覆盖?
- reactjs - 如何从保存在本地存储中的数组中删除项目?
- python - 给定一个文本文件,每行都有一个字符串列表,如何将每个列表附加到 python 中的一个大列表中
- uipath - 如何将数据表传递到 Uipath 中的存储过程
- python - Pandas:如何使用标识符过滤的另一列的总和创建一个新列?
- java - 在J/connector的文件夹中没有找到mysql-connector-java-version.jar文件
- azure-cosmosdb - 反序列化点坐标时出现 Microsoft.Azure.Cosmos.Spatial 错误
- react-native - 导入模块时@twilio/conversations 抛出错误