Spring Boot 项目接口 XSS 漏洞处理

本文介绍了在 Spring Boot 项目中避免 XSS 漏洞的几种方式。首先,可以使用 Spring 框架提供的 HtmlUtils 类对特殊字符进行转义处理。其次,可以使用 Jsoup 库对 HTML 标签进行过滤,保留需要的标签并删除不必要的标签。另外,还可以通过装饰者模式结合过滤器或拦截器对请求参数进行过滤转义。最后,对于 JSON 形式传参的场景,可以定义一个全局的 JSON 反序列化器来进行处理。总之,通过这些方式可以有效地避免 Spring Boot 项目中的 XSS 漏洞。

My Linux Laptop Apps

这是一个关于我在 Linux 环境下使用的应用程序清单的简要记录。清单中包括了各种应用程序和插件,但不包括浏览器和集成开发环境(IDE)的扩展。 这些应用程序可以帮助我在 Linux 环境下进行开发、办公和日常使用。

K8s Pod中应用如何获取客户端 IP

在 Kubernetes (K8s) 的 Pod 中运行的应用,想要获取客户端的真实 IP 地址信息,可以通过检查 "X-Original-Forwarded-For" 请求头来获取。在 K8s 集群中,请求经过 Ingress Controller 处理后,会将真实的客户端 IP 地址添加到该请求头中。因此,应用需要通过提取该请求头来获取客户端 IP 信息。需要注意的是,在 Ingress 资源中配置 "nginx.ingress.kubernetes.io/proxy-real-ip-cidr" 注解来启用对该请求头的支持。通过这种方式,应用可以准确获取到客户端的 IP 地址信息。

为什么 @Autowired 注解在 IDEA 中会有警告提示

在 IDEA 中,使用 @Autowired 注解会出现警告提示。这是由于最佳实践和设计原则导致的。字段注入方式虽然简洁方便,但存在一些问题,会增加应用程序与框架之间的紧耦合。为了消除警告,可以使用 @Resource 注解替换 @Autowired 注解。三种主要的依赖注入方式是:字段注入、构造函数注入和 Setter 方法注入。推荐使用构造函数注入,并可结合 lombok 来简化代码。

Docker 容器中启用 IPv6 网络

为 Docker 容器启用 IPv6 支持,需要在 Docker 守护进程中进行配置。在 /etc/docker/daemon.json 文件中添加以下内容:experimental 设置为 true,ipv6 设置为 true,ip6tables 设置为 true,fixed-cidr-v6 设置为一个子网。然后重启 Docker 服务。可以使用命令或 Docker Compose 创建支持 IPv6 的网络。在使用 IPv6 时需要注意修改 /etc/gai.conf 以使其优先级高于 IPv4。具体配置步骤可以参考上述文中的详细说明。

eu.org 域名注册记录

eu.org 是一类免费域名,个人或非营利组织可以注册。注册流程包括:注册账号、申请域名、填写地址和联系信息、添加域名到 CloudFlare。在大陆使用时需要配合 HTTPS,并且在某些运营商下无法解析。

OAuth 2.0 相关整理记录

OAuth 2.0 是一种开放标准的授权协议,用于应用程序访问其他网站上用户账户的权限管理。它提供了安全性、便利性和灵活性。OAuth 2.0 支持多种授权类型,包括授权码模式、隐式 / 简化模式、密码模式和客户端凭证模式。授权码模式是最常见的,用户会被重定向到授权服务器进行身份验证,并授权应用程序访问其账户。其他类型则不同程度上降低了安全性和交互性。开发过程中需要前端、后端和授权服务器三个模块来实现授权码模式。前端生成授权请求 URL,用户登录后会重定向到授权服务器,并返回授权码给前端。前端将授权码传递给后端,后端使用授权码交换访问令牌。授权服务器验证授权码,并返回访问令牌给后端。后端可以使用访问令牌来访问受保护的资源。这是一个简单的 OAuth 2.0 授权流程。

K8s Nginx Ingress 配置 Basic Auth 访问

为 K8s Nginx Ingress Controller 配置 HTTP Basic Auth,增强安全。首先使用 htpasswd 或 openssl 命令创建认证文件,然后创建 Secret,并将认证文件作为其值。最后,通过在 Ingress 中设置相应的注解来启用基本认证。成功应用后,访问 Ingress 对应的 URL 将需要输入用户名和密码。扩展:在 Nginx 配置文件中增加 auth_basic 和 auth_basic_user_file 指令以配置 Basic 认证。

Drone 搭建记录

Drone 是一个轻量级、现代化的持续集成和持续交付平台。通过与 Docker 和 Kubernetes 集成,以及与主流的 Git 平台联动,Drone 可以实现自动化的构建、测试和部署工作流程。在搭建过程中,需要在 Git 平台上创建一个应用,并获取 Client ID 和 Client Secret,然后将这些信息配置到 Drone Server 和 Runner 中。Drone Server 负责接收和处理 CI/CD 任务,而 Drone Runner 负责在 Docker 容器中执行这些任务。在项目中,可以通过配置一个.drone.yml 文件来定义 Drone 的工作流程,包括构建、打包和部署等步骤。最后,通过 Drone Web 界面可以手动触发 Pipeline 或配置自动触发,监控任务的运行情况。通过这种方式,可以实现高效的 CI/CD 流程,提高开发效率。

命令行快速登录有OTP二次验证的堡垒机/跳板机

该方法通过 Shell 脚本自动输入 TOTP 验证码,实现快速登录堡垒机。通过修改 SSH Config 文件和编写 Shell 脚本,可以在终端中直接通过命令登录到堡垒机,无需手动输入密码和二次验证码。这样可以大大提高登录的效率。但是需要注意的是,这种方法可能会牺牲一定的安全性,所以建议仅在个人可信环境下使用。