- 博客(142)
- 资源 (6)
- 收藏
- 关注
原创 本地Python脚本是否存在命令注入风险
本地Python脚本存在命令注入风险,风险程度取决于输入来源的可信度。主要风险来源包括命令行参数、配置文件、环境变量、用户交互、文件读取和网络数据等。攻击场景涵盖恶意用户执行、配置篡改和提权攻击等。防护方案包括:1) 最小权限原则;2) 严格的输入验证和净化;3) 安全执行命令(使用参数列表而非shell);4) 完善的监控审计机制。安全开发需遵循深度防御策略,实施运行时保护、安全配置、输入验证、权限控制和资源限制等多层防护。核心结论:即使是内部工具也必须严格验证所有输入,实施多层防御,避免成为攻击入口。
2026-01-20 17:37:04
371
原创 process.communicate()函数注入命令风险分析
方法本身是安全的,它只是与已存在的进程通信命令注入风险在Popen()构造函数中,特别是使用shell=True时使用参数列表而不是字符串拼接可以避免大多数注入风险如果必须使用shell=True,应该使用转义所有用户输入默认使用参数列表方式避免不必要的shell=True严格验证和转义所有用户输入使用白名单限制允许的命令和参数设置适当的超时时间(避免DoS攻击)
2026-01-20 14:24:02
400
原创 Python 中subprocess.getstatusoutput(cmd) 函数注入命令风险分析
Python的subprocess.getstatusoutput()函数因使用shell=True存在命令注入风险,当用户输入被直接拼接到命令中时,攻击者可通过特殊字符(如;、&、$()等)执行任意命令。高危场景包括文件操作、日志分析等涉及用户输入的场景。建议:1)避免直接拼接用户输入;2)使用参数列表替代字符串命令(如subprocess.run());3)对必须使用shell的情况严格转义输入(shlex.quote());4)实施白名单验证。安全实践的核心是永远不信任用户输入,优先使用非sh
2026-01-20 11:46:40
354
原创 命令注入风险总结与重构原理详解
摘要:本文系统分析了命令注入安全风险,提出"数据与代码分离"的重构原则。危险模式包括字符串拼接、多层管道、shell执行和敏感信息泄露。重构方案采用参数列表化、结构化解析、分层验证等技术,构建安全执行框架,实现输入验证、权限控制、环境隔离等6层防御。重构可提升安全性、可维护性、可测试性和可观测性,建议分阶段实施。核心是转变"shell脚本思维"为"安全编程思维",通过严格区分数据与代码边界构建健壮系统。
2026-01-04 18:06:47
472
原创 DataKit 服务Web TLS安全问题修复
摘要:针对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安全标准。
2025-12-26 12:07:49
747
原创 DataKit js-yaml和follow-redirects组件依赖影响分析
根据js-yaml和follow-redirects的依赖结果分析两者在DataKit项目中的受影响情况进行分析。
2025-12-23 15:56:20
496
原创 DataKit 服务CPU使用率报高问题分析
启动DataKit 服务后,在服务空载情况下,出现CPU使用率报高,维持在 80+% 左右。前期cpu出现6次 200~400 之间峰值,为进程启动阶段。通过堆栈分析,发现当前引入的disruptor 相关业务引起的CPU使用率过高。实际可能因为休眠时间太短,线程调度器还来不及让线程真正休眠。:空转时CPU占用较低,因为不需要CAS操作竞争序列号。:缓冲区大小直接影响内存占用,但对空转时CPU占用。对CPU占用影响不大,但线程优先级会影响调度。:需要CAS操作,空转时仍有一定CPU开销。
2025-12-19 09:46:24
328
原创 PF4J 详解与开发流程
PF4J(Plugin Framework for Java)是一个轻量级的Java插件框架,允许应用程序通过插件进行扩展。它提供了插件开发、加载、管理和卸载的全套解决方案。// 1. 创建扩展点接口,标记为ExtensionPoint// 2. 创建另一个扩展点接口定义扩展点:创建扩展点接口开发主程序:实现PluginManager管理插件开发插件:实现Plugin类和扩展点配置插件:创建plugin.properties文件打包部署:将插件部署到指定目录运行时管理:动态加载、卸载插件。
2025-12-04 09:42:22
1064
原创 OracleTypes 与 java.sql.Types 常量详细比对分析
详细比对(ojdbc11:23.26.0.0.0)和的常量关系(其中Oracle)
2025-11-20 11:55:41
456
原创 Spring Boot 日志框架选择指南:Logback vs Log4j2
SpringBoot日志框架选择指南:Log4j2 vs Logback Log4j2和Logback是SpringBoot最常用的两种日志实现方案。Log4j2在性能(异步吞吐量达120万条/秒)和云原生支持方面表现更优,适合高并发场景;Logback则是SpringBoot默认实现,稳定性更好,配置更简单。选择建议:对于高吞吐、云原生需求选Log4j2(需排除默认logback依赖),常规应用推荐使用默认的Logback。迁移时需注意配置文件语法差异和API替换。
2025-09-02 11:47:19
992
原创 Spring Boot 3.5.3 集成 Log4j2 日志系统
摘要:本文详细介绍了在Spring Boot 3.5.3中将默认Logback替换为Log4j2的完整配置方案。主要包括:1)通过pom.xml排除Logback并引入Log4j2依赖;2)创建log4j2.xml配置文件定义日志格式、输出和级别;3)配置application.yml支持热更新;4)提供日志工具类简化调用;5)实现高级功能如日志脱敏、指标监控和ELK集成;6)性能优化建议包括异步日志配置;7)验证方法及配置总结。该方案提供了完整的日志解决方案,支持灵活的日志管理、敏感信息保护和性能优化。
2025-09-02 11:35:44
492
原创 maven scope 详解
Maven的scope用于控制依赖项在不同构建阶段(编译、测试、运行)的可用性和传递性。主要scope类型包括:compile(默认,全阶段可用)、provided(容器提供,不打包)、runtime(仅运行测试)、test(仅测试阶段)以及import(BOM管理)。合理使用scope能优化构建效率,避免依赖冲突,如用provided处理Servlet API,runtime管理JDBC驱动。最佳实践建议避免使用system范围,优先通过compile/provided/runtime实现精准依赖控制,同
2025-08-28 10:15:56
1173
原创 spring-boot-test与 spring-boot-starter-test 区别
关系“购物车”“购物车里的一个商品”你的操作把整个“购物车”()加入项目购物车()会自动把你想要的“商品”()带进来结论直接使用这个就行不需要关心它,它是自动带来的在 Spring Boot 项目中写测试,就引入。它会帮你处理好一切。
2025-08-27 16:35:24
582
原创 DataKit 服务创建服务器管理访问失败问题总结
1. 版本开始强制要求证书必须包含 ,明确指定证书适用的域名/IP地址。 版本对 SAN 扩展的验证较宽松,因此旧版浏览器可连接成功2.证书生成命令中 或 当访问时,浏览器检查证书的 SAN 列表,若未匹配则拒绝连接。
2025-08-19 15:52:05
563
原创 JSCH问题 总结
首选方案一:移除nohup+ 关闭 PTY + 直接后台执行(),简单有效。生产环境:用 systemd托管服务(日志、自启、监控完善)。严格避免:PTY 模式 +nohup(行为冲突);输出重定向到/dev/null(完全丢失日志)。t=P758GitCode - openGauss DataKitGitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。
2025-08-14 15:45:42
852
原创 linux 环境服务发生文件句柄泄漏导致服务不可用
问题描述:服务调用远程rest接口 报错,发生too many open files 异常,系统句柄资源耗尽,导致服务不可用。排查经过:1、针对报错代码进行本地构建,构造异常,并进行压测。问题未复现2、经过讨论分析,问题发生根因为:句柄资源耗尽,那么必然存在进程持续消耗句柄资源,且不进行释放。3、因此,开始排查服务进程句柄信息通过统计观察各个进程的句柄总数,分析查找到问题根源原因最终确认:问题修复 :使用try-resource-with 方式主动关闭资源。
2025-07-22 16:06:20
566
原创 gitcode域名解析 Windows host
host 目录 C:\Windows\System32\drivers\etc。复制host 文件到桌面,修改文件,添加如下内容,修改后覆盖回原Windows。
2025-07-11 15:56:07
190
原创 R2DBC原理与应用前景
R2DBC驱动实现关系型数据库异步访问的关键在于协议适配而非内核改造。其核心是通过数据库现有通信协议(如PostgreSQL的异步查询协议)实现非阻塞操作,或将同步协议封装为异步形式。这种设计使驱动无需修改数据库内核即可工作,但性能受限于协议对异步和流式处理的支持程度。目前主流数据库已基本覆盖,与Spring生态深度整合,在云原生和高并发场景展现出优势,但也面临开发者学习曲线陡峭等挑战。R2DBC已成为响应式数据库访问的事实标准,特别适合新构建的实时系统。
2025-07-11 11:22:49
960
原创 Spring Boot Web 服务单元测试设计指南
在 Spring Boot Web 项目中,单元测试应聚焦的验证,隔离外部依赖(如数据库、网络服务)。
2025-07-02 10:18:49
365
原创 汤臣倍健 维生素C片 成分说明
汤臣倍健 维生素C片 主要原料说明维生素C、糖粉、玉米淀粉、糊精、硬脂酸镁、羟丙基甲基纤维素、甘油、钛白粉、日落黄铝色淀、柠檬黄铝色淀
2024-06-20 11:06:39
1491
原创 Python 开发学习目录
学习 Web 开发:学习如何使用 Python 进行 Web 开发,包括 Flask、Django 等 Web 框架。学习自动化测试:学习如何使用 Python 进行自动化测试,包括 unittest、pytest 等自动化测试框架。学习网络编程:学习如何使用 Python 进行网络编程,包括 HTTP 协议、爬虫、自动化测试等。学习基础语法:学习 Python 的基础语法,包括变量、数据类型、控制结构、函数等。学习面向对象编程:学习 Python 的面向对象编程,包括类、对象、继承等。
2024-01-30 16:22:12
532
1
原创 MySQL与openGauss 时间操作比较分析
在进行数据迁移校验时,发现mysql和opengauss 对时间处理不一致问题,针对时间处理我们采用了多种处理方案,对问题的处理过程我们进行了总结和记录。
2022-08-27 12:01:59
3518
原创 openGauss DataStadio Eclipse-RCP开发环境搭建总结
在于帮助进行openGauss DataStudio客户端工具开发同学,一起努力,分享
2022-07-08 10:32:51
317
原创 git 合并多次commit
这个操作执行以下三步:1.将你修改的本地仓库的内容,取出来放到暂存区(stash)(保证工作区的干净)2.本地合并多次提交的commit,由于工作区干净,所以不会有冲突3.从暂存区把你之前提交的内容取出来所以rebase在拉代码前要保证你的本地工作区是干净的,如果你本地修改的内容没完全commit 或者stash,就会rebase失败。整个工作流程执行以下命令:git stash 将本地修改文件保存到暂存工作区git rebase 合并多次commitgit push ..
2022-05-19 20:43:04
2940
原创 openGauss单节点Docker镜像制作
系统用户创建 根据docker 运行镜像名称创建系统用户。RUN useradd -ms /bin/bash opengauss创建用户根目录,安装包下载目录,数据库安装安装目录,并设置操作权限mkdir -p /opengauss/package && mkdir -p /opengauss/install && chown -R opengauss:opengauss /opengauss下载安装包wget -P /opengauss/pa
2022-04-24 10:33:35
1730
原创 Docker镜像制作案例
关于kafka-eagle(EFAK)kafka管理工具实现镜像制作及发布由于kafka-eagle官方没有提供docker镜像,我们自行构建一个镜像并发布运行。以下是其镜像制作的详细过程。
2022-04-22 18:36:13
2499
原创 Spark 开发环境
一、安装JDK本文写于2022年4月,此时最新版的JDK已经更新到了JDK17——下载地址。为了满足开发人员的需要,Oracle仍然提供了JDK8和JDK11可供下载,下载链接也在上面的网站上,只需要把页面下滑即可。注:由于需要配置Spark,但Spark与较新的JDK兼容性不好,如果使用最新的JDK,后序运行Spark过程中会出现错误。因此,建议初学者安装JDK8即可。下载完成后即可安装。但需要注意的是,需要为JDK设置三个环境变量PATH、JAVA_HOME、CLASSPATH,网上已经有很多
2022-04-22 00:58:18
3878
原创 UML用例图
UML 用例图 Use Case Diagram我们把用例图分解为四个不同的元素:系统Systems,参与者Actors,用例Use Cases和关系Relationships1、系统 系统就是我们正在开发的任何东西。它可以是一个网站,一个软件组件,业务流程,应用程序或任何其他的事情。 矩形表示一个系统,并把系统的名称放在顶部。我们构建一个简单的银行应用程序用例图。我们称为银行应用程序系统。此矩形有助于定义此系统的范围。这个矩形内的任何东西都在银行应用程序内。这个矩...
2022-04-15 02:27:22
7104
1
原创 CentOS8 查看 更换 镜像源
镜像源配置文件在/etc/yum.repos.d文件夹下查看yum源文件ls /etc/yum.repos.d/阿里云镜像配置文件的路径为: http://mirrors.aliyun.com/repo/Centos8.repo下载阿里镜像源curl -o /etc/yum.repos.d/CentOS-Base-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-8.repo打开阿里镜像源文件查看更新镜像源...
2021-04-30 18:05:47
6322
2
IQ测试题含答案 约30道
2020-12-13
Eclipse下搭建Corba开发环境
2020-07-29
Activiti5.4 用户指南(中文版)良心版
2019-04-10
窗口文件整理工具(Q-Dir)
2019-04-12
Activiti权威指南 pdf 版
2019-03-29
MySQL 5.1参考手册
2019-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅