<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[最近学习目标：MySQL，Redis]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wang4721</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wang4721]]></copyright><item><title><![CDATA[本地Python脚本是否存在命令注入风险]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/157180920</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/157180920</guid><author>wang4721</author><pubDate>Tue, 20 Jan 2026 17:37:04 +0800</pubDate><description><![CDATA[本地Python脚本存在命令注入风险，风险程度取决于输入来源的可信度。主要风险来源包括命令行参数、配置文件、环境变量、用户交互、文件读取和网络数据等。攻击场景涵盖恶意用户执行、配置篡改和提权攻击等。防护方案包括：1) 最小权限原则；2) 严格的输入验证和净化；3) 安全执行命令（使用参数列表而非shell）；4) 完善的监控审计机制。安全开发需遵循深度防御策略，实施运行时保护、安全配置、输入验证、权限控制和资源限制等多层防护。核心结论：即使是内部工具也必须严格验证所有输入，实施多层防御，避免成为攻击入口。]]></description><category></category></item><item><title><![CDATA[process.communicate()函数注入命令风险分析]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/157176281</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/157176281</guid><author>wang4721</author><pubDate>Tue, 20 Jan 2026 14:24:02 +0800</pubDate><description><![CDATA[方法本身是安全的，它只是与已存在的进程通信命令注入风险在Popen()构造函数中，特别是使用shell=True时使用参数列表而不是字符串拼接可以避免大多数注入风险如果必须使用shell=True，应该使用转义所有用户输入默认使用参数列表方式避免不必要的shell=True严格验证和转义所有用户输入使用白名单限制允许的命令和参数设置适当的超时时间（避免DoS攻击）]]></description><category></category></item><item><title><![CDATA[Python 中subprocess.getstatusoutput(cmd) 函数注入命令风险分析]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/157173852</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/157173852</guid><author>wang4721</author><pubDate>Tue, 20 Jan 2026 11:46:40 +0800</pubDate><description><![CDATA[Python的subprocess.getstatusoutput()函数因使用shell=True存在命令注入风险，当用户输入被直接拼接到命令中时，攻击者可通过特殊字符（如;、&amp;、$()等）执行任意命令。高危场景包括文件操作、日志分析等涉及用户输入的场景。建议：1）避免直接拼接用户输入；2）使用参数列表替代字符串命令（如subprocess.run()）；3）对必须使用shell的情况严格转义输入（shlex.quote()）；4）实施白名单验证。安全实践的核心是永远不信任用户输入，优先使用非sh]]></description><category></category></item><item><title><![CDATA[命令注入风险总结与重构原理详解]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/156574706</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/156574706</guid><author>wang4721</author><pubDate>Sun, 04 Jan 2026 18:06:47 +0800</pubDate><description><![CDATA[摘要：本文系统分析了命令注入安全风险，提出&quot;数据与代码分离&quot;的重构原则。危险模式包括字符串拼接、多层管道、shell执行和敏感信息泄露。重构方案采用参数列表化、结构化解析、分层验证等技术，构建安全执行框架，实现输入验证、权限控制、环境隔离等6层防御。重构可提升安全性、可维护性、可测试性和可观测性，建议分阶段实施。核心是转变&quot;shell脚本思维&quot;为&quot;安全编程思维&quot;，通过严格区分数据与代码边界构建健壮系统。]]></description><category></category></item><item><title><![CDATA[DataKit 服务Web TLS安全问题修复]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/156300756</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/156300756</guid><author>wang4721</author><pubDate>Fri, 26 Dec 2025 12:07:49 +0800</pubDate><description><![CDATA[摘要：针对DataKit服务TLS安全检查发现的DH密钥长度不足和CBC模式安全问题，提出通过修改SpringBoot配置彻底移除DHE密码套件的解决方案。分析显示Tomcat 10.1.x默认使用2048位DH参数，建议优先采用ECDHE套件替代传统DHE，因其在同等安全强度下密钥更短、性能更优。具体修复方案包括：禁用所有CBC模式套件，仅保留ECDHE_GCM和CHACHA20等安全套件，并强制使用TLS1.2/1.3协议。验证表明该方案既能解决DH长度不足问题，又符合TLS1.3安全标准。]]></description><category></category></item><item><title><![CDATA[DataKit js-yaml和follow-redirects组件依赖影响分析]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/156198644</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/156198644</guid><author>wang4721</author><pubDate>Tue, 23 Dec 2025 15:56:20 +0800</pubDate><description><![CDATA[根据js-yaml和follow-redirects的依赖结果分析两者在DataKit项目中的受影响情况进行分析。]]></description><category></category></item><item><title><![CDATA[DataKit 服务CPU使用率报高问题分析]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/156067225</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/156067225</guid><author>wang4721</author><pubDate>Fri, 19 Dec 2025 09:46:24 +0800</pubDate><description><![CDATA[启动DataKit 服务后，在服务空载情况下，出现CPU使用率报高，维持在 80+% 左右。前期cpu出现6次 200~400 之间峰值，为进程启动阶段。通过堆栈分析，发现当前引入的disruptor 相关业务引起的CPU使用率过高。实际可能因为休眠时间太短，线程调度器还来不及让线程真正休眠。：空转时CPU占用较低，因为不需要CAS操作竞争序列号。：缓冲区大小直接影响内存占用，但对空转时CPU占用。对CPU占用影响不大，但线程优先级会影响调度。：需要CAS操作，空转时仍有一定CPU开销。]]></description><category></category></item><item><title><![CDATA[PF4J 详解与开发流程]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/155557030</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/155557030</guid><author>wang4721</author><pubDate>Thu, 04 Dec 2025 09:42:22 +0800</pubDate><description><![CDATA[PF4J（Plugin Framework for Java）是一个轻量级的Java插件框架，允许应用程序通过插件进行扩展。它提供了插件开发、加载、管理和卸载的全套解决方案。// 1. 创建扩展点接口，标记为ExtensionPoint// 2. 创建另一个扩展点接口定义扩展点：创建扩展点接口开发主程序：实现PluginManager管理插件开发插件：实现Plugin类和扩展点配置插件：创建plugin.properties文件打包部署：将插件部署到指定目录运行时管理：动态加载、卸载插件。]]></description><category></category></item><item><title><![CDATA[OracleTypes 与 java.sql.Types 常量详细比对分析]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/155061830</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/155061830</guid><author>wang4721</author><pubDate>Thu, 20 Nov 2025 11:55:41 +0800</pubDate><description><![CDATA[详细比对（ojdbc11:23.26.0.0.0）和的常量关系(其中Oracle)]]></description><category></category></item><item><title><![CDATA[JAR文件句柄泄漏问题分析与解决方案]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/154577268</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/154577268</guid><author>wang4721</author><pubDate>Sat, 08 Nov 2025 19:43:59 +0800</pubDate><description><![CDATA[根据堆转储分析截图，我发现了JAR文件句柄泄漏的具体证据。]]></description><category></category></item><item><title><![CDATA[Spring Boot 日志框架选择指南：Logback vs Log4j2]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/151107973</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/151107973</guid><author>wang4721</author><pubDate>Tue, 02 Sep 2025 11:47:19 +0800</pubDate><description><![CDATA[SpringBoot日志框架选择指南：Log4j2 vs Logback Log4j2和Logback是SpringBoot最常用的两种日志实现方案。Log4j2在性能（异步吞吐量达120万条/秒）和云原生支持方面表现更优，适合高并发场景；Logback则是SpringBoot默认实现，稳定性更好，配置更简单。选择建议：对于高吞吐、云原生需求选Log4j2（需排除默认logback依赖），常规应用推荐使用默认的Logback。迁移时需注意配置文件语法差异和API替换。]]></description><category></category></item><item><title><![CDATA[Spring Boot 3.5.3 集成 Log4j2 日志系统]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/151107477</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/151107477</guid><author>wang4721</author><pubDate>Tue, 02 Sep 2025 11:35:44 +0800</pubDate><description><![CDATA[摘要：本文详细介绍了在Spring Boot 3.5.3中将默认Logback替换为Log4j2的完整配置方案。主要包括：1）通过pom.xml排除Logback并引入Log4j2依赖；2）创建log4j2.xml配置文件定义日志格式、输出和级别；3）配置application.yml支持热更新；4）提供日志工具类简化调用；5）实现高级功能如日志脱敏、指标监控和ELK集成；6）性能优化建议包括异步日志配置；7）验证方法及配置总结。该方案提供了完整的日志解决方案，支持灵活的日志管理、敏感信息保护和性能优化。]]></description><category></category></item><item><title><![CDATA[maven scope 详解]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150945102</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150945102</guid><author>wang4721</author><pubDate>Thu, 28 Aug 2025 10:15:56 +0800</pubDate><description><![CDATA[Maven的scope用于控制依赖项在不同构建阶段（编译、测试、运行）的可用性和传递性。主要scope类型包括：compile（默认，全阶段可用）、provided（容器提供，不打包）、runtime（仅运行测试）、test（仅测试阶段）以及import（BOM管理）。合理使用scope能优化构建效率，避免依赖冲突，如用provided处理Servlet API，runtime管理JDBC驱动。最佳实践建议避免使用system范围，优先通过compile/provided/runtime实现精准依赖控制，同]]></description><category></category></item><item><title><![CDATA[spring-boot-test与 spring-boot-starter-test 区别]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150930364</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150930364</guid><author>wang4721</author><pubDate>Wed, 27 Aug 2025 16:35:24 +0800</pubDate><description><![CDATA[关系“购物车”“购物车里的一个商品”你的操作把整个“购物车”()加入项目购物车()会自动把你想要的“商品”()带进来结论直接使用这个就行不需要关心它，它是自动带来的在 Spring Boot 项目中写测试，就引入。它会帮你处理好一切。]]></description><category></category></item><item><title><![CDATA[mybatis 插件]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150930099</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150930099</guid><author>wang4721</author><pubDate>Wed, 27 Aug 2025 16:28:57 +0800</pubDate><description><![CDATA[和都是用于增强 MyBatis 功能的 Spring Boot Starter，但它们的功能定位和使用方式有显著区别。]]></description><category></category></item><item><title><![CDATA[ JNA 介绍]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150929991</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150929991</guid><author>wang4721</author><pubDate>Wed, 27 Aug 2025 16:22:40 +0800</pubDate><description><![CDATA[包含了多个常见操作系统 API 的预定义接口和常量。]]></description><category></category></item><item><title><![CDATA[DataKit 服务创建服务器管理访问失败问题总结]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150527547</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150527547</guid><author>wang4721</author><pubDate>Tue, 19 Aug 2025 15:52:05 +0800</pubDate><description><![CDATA[1.​​​​ 版本开始强制要求证书必须包含 ​​，明确指定证书适用的域名/IP地址。​​ 版本对 SAN 扩展的验证较宽松，因此旧版浏览器可连接成功2.​​证书生成命令中 ​​ 或 ​当访问时，浏览器检查证书的 SAN 列表，若未匹配则拒绝连接。]]></description><category></category></item><item><title><![CDATA[Linux路径长度限制机制​]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150395999</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150395999</guid><author>wang4721</author><pubDate>Thu, 14 Aug 2025 17:27:15 +0800</pubDate><description><![CDATA[操作系统对文件路径深度和长度的设计是影响文件系统稳定性、性能及用户体验的关键因素。]]></description><category></category></item><item><title><![CDATA[JSCH问题 总结]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/150385348</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/150385348</guid><author>wang4721</author><pubDate>Thu, 14 Aug 2025 15:45:42 +0800</pubDate><description><![CDATA[​​首选方案一​​：移除nohup+ 关闭 PTY + 直接后台执行（），简单有效。​​生产环境​​：用 ​​systemd托管服务​​（日志、自启、监控完善）。​​严格避免​​：PTY 模式 +nohup（行为冲突）；输出重定向到/dev/null（完全丢失日志）。t=P758GitCode - openGauss DataKitGitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。]]></description><category></category></item><item><title><![CDATA[linux 环境服务发生文件句柄泄漏导致服务不可用]]></title><link>https://blog.youkuaiyun.com/wang4721/article/details/149538756</link><guid>https://blog.youkuaiyun.com/wang4721/article/details/149538756</guid><author>wang4721</author><pubDate>Tue, 22 Jul 2025 16:06:20 +0800</pubDate><description><![CDATA[问题描述：服务调用远程rest接口 报错，发生too many open files 异常，系统句柄资源耗尽，导致服务不可用。排查经过：1、针对报错代码进行本地构建，构造异常，并进行压测。问题未复现2、经过讨论分析，问题发生根因为：句柄资源耗尽，那么必然存在进程持续消耗句柄资源，且不进行释放。3、因此，开始排查服务进程句柄信息通过统计观察各个进程的句柄总数，分析查找到问题根源原因最终确认：问题修复 ：使用try-resource-with 方式主动关闭资源。]]></description><category></category></item></channel></rss>