在 Spring 应用中防止跨站脚本(XSS)攻击
1、概览 {#1概览} ----------- 在构建 Spring Web 应用时,关注安全性非常重要。跨站脚本 (XSS) 是对 Web 安全威胁最大的攻击之一。 在 Spring 应用中,防止 XSS 攻击是一项挑战。Spring 提供了内置的帮助来实现全面的保护。 本文将带你了解如何通过 [Spring Security](/spring-security/) 使...
1、概览 {#1概览} ----------- 在构建 Spring Web 应用时,关注安全性非常重要。跨站脚本 (XSS) 是对 Web 安全威胁最大的攻击之一。 在 Spring 应用中,防止 XSS 攻击是一项挑战。Spring 提供了内置的帮助来实现全面的保护。 本文将带你了解如何通过 [Spring Security](/spring-security/) 使...
1、概览 {#1概览} ----------- 本文将带你了解 Spring `RestTemplate` 抛出 `IllegalArgumentException: Not enough variables available to expand` 异常的原因以及解决办法。 2、原因 {#2原因} ----------- 简而言之,当试图在 GET 请求参数中发送 JS...
1、简介 {#1简介} ----------- 本文将带你了解如何在 Spring Boot 项目中处理 Multipart 文件上传请求。 Multipart 请求可以包含多个独立的请求体部分,通常用于文件上传。除了文件以外,还可以同时上传表单、JSON、XML 等等数据。 2、使用 @ModelAttribute {#2使用-modelattribute} -----...
1、概览 {#1概览} ----------- 本文将会带你了解 Spring MVC `HandlerInterceptor` 和 Servlet `Filter` 之间的区别和各自的应用场景。 2、Filter {#2filter} ------------------- Filter 是 Web 服务器的一部分,而不是 Spring 框架的组件。对于传入请求,可以使...
1、概览 {#1概览} ----------- 在云上构建分布式应用时,需要考虑到服务故障,这通常会涉及到重试。 Spring WebFlux 提供了一些失败后重试的工具。 本文将会带你了解如何在 Spring WebFlux 添加和配置重试功能。 2、用例 {#2用例} ----------- 本文使用一个 `MockWebServer` 来模拟外部系统暂时不可用,...
[SQLite](https://www.sqlite.org/index.html) 是一种嵌入式关系型数据库管理系统(RDBMS),使用 C 语言开发,以其简单性、轻量级和零配置而闻名。不需要独立的服务器,可以直接嵌入到应用中。支持事务,支持各种编程语言。是移动应用和嵌入式系统的首选数据库解决方案。 本文将会带你了解如何在 [Spring Boot](/spring-bo...
1、简介 {#1简介} ----------- 本文将会带你学习如何使用 [Spring Boot](/spring-boot/) 以及 [React JavaScript](https://reactjs.org/) 框架开发一个简单的 RESTful CRUD 应用。 2、Spring Boot {#2spring-boot} ---------------------...
在 [Spring Boot 3](/spring-boot/) 之后,[Spring Security](/spring-security/) 现在也升级到 Spring Security 6 了。 Spring Security 6 的用法跟之前比起来还是有很大差异,例如:动态权限定义的方式。 1、权限开发思路 {#1权限开发思路} ------------------...
1、概览 {#1概览} ----------- 长轮询(Long polling)通常用于在 B/S 架构的应用中保持客户端和服务器的连接,直到信息可用。通常在服务器必须调用下游服务以获取信息并等待结果时使用。 本文将带你了解如何在 Spring MVC 应用中使用 [`DeferredResult`](https://docs.spring.io/spring-frame...
响应压缩是 Web 应用一种常见的优化手段,通过压缩算法减小传输数据的体积,提高传输效率、节约带宽。客户端接收到数据后,使用相同的算法对数据进行解压从而获取到原始数据。 客户端和服务器需要通过 Header 来协商双方支持的压缩算法。 * `Accept-Encoding`:请求头,告诉服务器客户端支持的压缩算法(多个使用逗号分割)。例如:`Accept-Encoding:...