- 博客(172)
- 收藏
- 关注
原创 漏洞扫描与分析详解:精准定位系统薄弱点 (CISP-PTE 核心技能)
本文详细介绍了漏洞扫描与分析的核心技术,作为CISP-PTE认证的重要技能。首先阐述了漏洞扫描的基本概念、必要性与渗透测试的区别,强调其在安全评估中的关键作用。随后重点分析了主流扫描工具的特点与适用场景,包括商业工具Nessus、开源方案OpenVAS、多功能工具Nmap以及专注Web安全的AWVS等。文章指出,自动化扫描与手动验证相结合,才能实现全面的安全评估。通过系统掌握这些工具和技术,安全人员可以精准定位系统薄弱点,为后续渗透测试奠定基础。
2025-12-22 11:05:23
852
原创 信息收集与分析详解:渗透测试的侦察兵 (CISP-PTE 核心技能)
本文深入解析渗透测试中的信息收集与分析技术,涵盖被动和主动两种方式。被动收集通过公开渠道(OSINT)获取目标信息,包括DNS查询、子域名枚举、Whois查询和网络空间搜索引擎(如Shodan、ZoomEye)等。主动收集则直接与目标交互,使用Nmap扫描等技术。文章强调信息收集在渗透测试中的关键作用,如缩小攻击面、发现隐藏资产、提高成功率等,并提供了实用的工具和代码示例。适用于准备CISP-PTE认证的安全从业者。
2025-12-22 09:25:51
847
原创 渗透测试基础详解:通往 CISP-PTE 的第一步
摘要 渗透测试(Penetration Testing)是一种授权的模拟攻击活动,通过主动探测系统漏洞来评估安全性,核心思想是"以攻促防"。与自动化漏洞扫描相比,渗透测试更具深度,需要专业人员手动验证漏洞可利用性。主流方法论包括PTES七阶段标准和OSSTMM等,测试流程涵盖前期准备、情报收集、漏洞分析、漏洞利用、后渗透和报告撰写。渗透测试能识别未知漏洞、验证安全控制有效性,并满足合规要求,是网络安全防护体系的重要组成部分,也是CISP-PTE认证的关键基础。
2025-12-14 14:12:22
766
原创 信息安全保障基础详解:CISP-PTE 必备知识
本文系统阐述了信息安全保障的基础知识,重点涵盖三个核心方面:信息安全概述、威胁与风险评估、以及保障技术。首先定义了信息安全的CIA三元组(保密性、完整性、可用性),并扩展介绍了可控性和不可否认性。其次详细分析了信息安全威胁来源(人为、自然、技术等)、脆弱性类型(技术、管理、物理)及风险评估方法,包括风险计算模型和八步评估流程。最后介绍了密码学技术(对称/非对称加密)等关键保障手段。这些内容为CISP-PTE认证考试和实际渗透测试工作奠定了重要理论基础,强调信息安全在数字化时代对国家、企业和个人的关键保护作用
2025-12-14 13:20:22
1013
原创 Smart Universal Data Converter
SmartUniversalDataConverter v7.0是一款多功能数据转换工具,支持文本、二进制、十六进制等多种格式的相互转换。新版优化了界面布局和性能,提供实时转换、智能识别等功能,并支持MD5/SHA哈希生成。用户可通过输入框输入数据,选择实时或手动转换,在结果区域查看并复制转换内容。软件自动识别输入格式,但建议确保数据格式正确以获得最佳效果。
2025-11-25 22:38:20
276
原创 87、后会有期
**原理**:支持从多种来源读取配置,如`application.properties`、`application.yml`、环境变量、命令行参数等。- 使用`application-{profile}.properties`或`application-{profile}.yml`配置不同环境的参数。- **原理**:提供了一系列监控和管理端点,用于查看应用的健康状态、度量信息、环境变量等。- **原理**:根据项目的依赖和配置,自动配置Spring应用程序所需的Bean。
2025-07-04 07:52:25
318
原创 86、原理解析-自定义事件监听组件
1. **创建监听器类:** 实现 `ApplicationListener` 接口,泛型指定监听的事件类型,实现 `onApplicationEvent` 方法。2. **发布事件:** 注入 `ApplicationEventPublisher`,调用 `publishEvent` 方法发布事件。1. **创建监听器方法:** 在组件类中使用 `@EventListener` 注解标记方法,指定监听的事件类型。**方式二:实现 `ApplicationListener` 接口**// 业务逻辑...
2025-07-04 07:51:44
492
原创 85、原理解析-SpringBoot完整启动过程
应用程序的主类上标有`@SpringBootApplication`注解,该注解是`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`的组合。- **加载初始化器和监听器**:从`META-INF/spring.factories`中加载`ApplicationContextInitializer`和`ApplicationListener`。- 从`META-INF/spring.factories`中加载自动配置类,按需启用。
2025-07-02 00:19:47
334
原创 84、原理解析-SpringApplication创建初始化流程
84、原理解析-SpringApplication初始化流程# SpringApplication创建初始化流程原理解析`SpringApplication`的创建和初始化是Spring Boot应用启动的关键步骤,主要包括以下过程:## 1. 创建SpringApplication实例### 1.1 调用构造函数- 当调用`SpringApplication.run()`方法时,会先创建`SpringApplication`实例。- 构造函数接受主配置类(通常标有`@SpringBootApplicati
2025-07-02 00:18:43
436
原创 83、高级特性-自定义starter细节
分别打包两个模块,将`xxx-spring-boot-starter`发布到Maven仓库或本地仓库。#### **自动配置模块**:`xxx-spring-boot-autoconfigure`#### **Starter模块**:`xxx-spring-boot-starter`- 自动配置模块:`xxx-spring-boot-autoconfigure`- Starter模块:`xxx-spring-boot-starter`private String message = "默认消息";
2025-06-27 23:01:56
322
原创 82、高级特性-配置加载优先级
**`bootstrap`配置文件**:`bootstrap.properties`和`bootstrap.yml`用于配置Spring Cloud Config等,加载顺序在`application`系列文件之前。- **打包外部的`application-{profile}.properties`或`application-{profile}.yml`**- **`application-{profile}.properties`或`application-{profile}.yml`**
2025-06-27 22:59:45
465
原创 81、高级特性-Profile环境切换
在Spring Boot应用程序中,`Profile`机制用于在不同环境(如开发、测试、生产)下使用不同的配置,实现配置的灵活切换。对于多个环境共有的配置,可以放在`application.yml`中,环境特定的配置会覆盖通用配置。通过`Profile`机制,可以轻松地在不同环境之间切换配置,提高应用程序的部署和维护效率。其中,`{profile}`是环境名称,如`dev`、`test`、`prod`等。- `application-dev.yml`:开发环境配置。81、高级特性-Profile环境切换。
2025-06-26 16:56:47
602
原创 80、指标监控-Boot Admin Server
Boot Admin Server是一个功能强大的监控工具,为Spring Boot应用提供了全面的监控和管理功能,提高了系统的可维护性和可靠性。- 查看HTTP端点信息,如健康检查`/health`、环境变量`/env`、日志级别`/loggers`等。- 展示应用的配置属性,如`application.properties`中的参数。- 实时查看和修改应用的日志级别(如`DEBUG`、`INFO`、`WARN`)。- 负责收集应用的状态、指标、日志等信息,并发送给Admin Server。
2025-06-26 16:55:38
635
原创 79、指标监控-定制Endpoint
**自定义监控指标**:通过创建自定义Endpoint,您可以监控应用程序中的特定业务逻辑或性能指标,例如某个方法的调用次数、处理时间等。- `@WriteOperation`:用于定义写入操作,访问路径为`/actuator/custom`,支持POST请求。- **扩展监控范围**:除了系统默认提供的监控指标,定制Endpoint可以让您监控更多维度的数据,满足个性化需求。- `@Endpoint(id = "custom")`:定义了一个名为`custom`的Endpoint。
2025-06-25 07:47:03
504
原创 78、指标监控-开启与禁用
编辑 Pod Monitor YAML,将 `enabled` 设为 `false` 或删除配置。**1. 应用程序内置监控(如 Tetragon)**- **参考文档:** 查看官方文档获取详细配置说明。3. **验证禁用状态,确认指标不再被采集。4. **验证监控状态,确认指标正常采集。- **谨慎操作:** 避免影响系统正常运行。- **备份数据:** 禁用前备份重要数据。- **启用 Pod Monitor:**- **停用 Pod Monitor:**3. **配置监控目标,指定采集规则。
2025-06-25 07:46:26
625
原创 77、指标监控-SpringBoot Actuator与Endpoint
Spring Boot Actuator 是 Spring Boot 提供的一个监控和管理生产环境的模块,它通过暴露一系列的 **HTTP 或 JMX 端点(Endpoint)**,使开发者可以实时了解应用程序的运行状态、性能指标、配置信息等,从而方便地进行监控、管理和故障排除。**指标端点**,提供应用程序的各项性能指标,如内存使用情况、CPU 利用率、HTTP 请求统计等。**健康检查端点**,显示应用程序的健康状态,包括依赖的健康情况(如数据库、消息队列等)。return "这是自定义端点的信息";
2025-06-24 09:23:55
488
原创 76、单元测试-参数化测试
**输入验证**:测试不同参数类型(如字符串、数字、特殊字符)和边界值(如最大值、最小值、空值)对被测方法的影响。- **数据驱动测试**:将测试数据参数化,测试逻辑保持不变,通过不同的数据输入验证被测方法的正确性。- **测试用例生成**:根据参数化数据自动生成多个测试用例,每个用例对应一组特定的输入参数。- **多环境测试**:测试同一方法在不同环境(如开发、测试、生产)下的行为一致性。- **异常处理**:验证方法在异常输入下的容错能力,如无效数据、格式错误等。76、单元测试-参数化测试。
2025-06-24 09:22:41
360
原创 75、单元测试-嵌套测试
嵌套测试通过`@Nested`注解,将测试类定义为外部类的**内部类**,形成嵌套结构。- **生命周期方法**:嵌套类可以有自己的`@BeforeEach`和`@AfterEach`方法,但不会继承外部类的这些方法。**嵌套测试**是JUnit 5提供的一种功能,允许将测试类组织成层次结构,提升测试代码的可读性和可维护性。- **非静态内部类**:`@Nested`类必须是非静态的,以便访问外部类的成员。- **执行顺序**:嵌套测试的执行顺序是从外到内,但同层级的嵌套类之间顺序不确定。
2025-06-23 12:46:28
614
原创 74、单元测试-前置条件
如果前置条件不满足,测试用例将不会执行,以避免在无效的环境下测试导致错误的测试结果。- **明确测试范围**:清晰地定义测试用例的适用条件,帮助测试人员和开发人员理解测试的背景。- **合理使用**:前置条件应仅用于检查测试环境和外部依赖,避免用于验证被测代码的逻辑。- **筛选测试环境**:确保测试在合适的环境下进行,例如特定的配置、依赖服务等。- **提高测试效率**:避免在不满足前提条件时执行测试,减少不必要的资源消耗。- **明确提示**:在前置条件不满足时,提供清晰的提示信息,方便排查问题。
2025-06-23 12:45:21
441
原创 73、单元测试-断言机制
3. **提高代码质量**:促使开发者在编写代码时考虑各种边界条件和异常情况,提升代码的健壮性和可靠性。- **合理设置预期值**:确保预期值准确反映代码的正确行为,避免因预期值错误导致测试失败。2. **错误定位**:当断言失败时,会明确指出错误的位置和原因,帮助开发者快速定位问题。- **避免过度断言**:过多的断言会增加测试的复杂性,应专注于关键逻辑和边界条件。- **处理断言失败**:当断言失败时,及时分析原因并进行修复,不要忽略失败的测试。// 断言方法会抛出指定的异常。
2025-06-22 15:37:05
488
原创 72、单元测试-常用测试注解
在单元测试中,常用的测试注解可以帮助组织和管理测试代码,提高测试的可读性和可维护性。- 需要配合`@ValueSource`、`@CsvSource`等注解提供参数数据。- 与JUnit的`@BeforeClass`类似,在所有测试方法执行前运行一次。- 与JUnit的`@AfterClass`类似,在所有测试方法执行后运行一次。- 与JUnit的`@Test`类似,标记一个方法为测试方法。- 可以设置`priority`参数来指定测试方法的执行顺序。- 用于参数化测试,允许测试方法接收不同的参数值。
2025-06-22 15:36:11
629
原创 71、单元测试-Junit5简介
提供 `@ParameterizedTest` 注解,结合 `@ValueSource`、`@CsvSource`、`@MethodSource` 等注解定义参数来源。- 提供丰富的注解,如 `@Test`、`@BeforeEach`、`@AfterEach`、`@ParameterizedTest` 等。- 提供 `@EnabledIf`、`@DisabledIf`、`@EnabledOnOs`、`@DisabledOnOs` 等注解,实现条件控制。
2025-06-21 15:46:17
459
原创 70、数据访问-redis操作与统计小实验
/ 输出Redis连接工厂类。host: r-bp1nc7reqesxisgxpipd.redis.rds.aliyuncs.com # Redis服务器地址。
2025-06-21 12:34:49
514
原创 69、数据访问-准备阿里云redis环境
**云数据库Redis版**:提供多种版本(如Redis 6.0、Redis 7.0)和高可用架构,适合需要稳定性和高可用性的场景。- **云数据库Tair版**:阿里云自研的增强型Redis,提供更高的性能和丰富的数据结构,适合对性能要求极高的应用。2. **选择地域和可用区**:选择实例所在的地域和可用区,建议选择与业务服务器相同的地域,降低网络延迟。- **设置白名单**:仅允许特定IP地址访问Redis实例,提高安全性。6. **设置密码**:为Redis实例设置强密码,防止未经授权的访问。
2025-06-20 00:06:46
578
原创 68、数据访问-crud实验-删除用户完成
**数据库表设计**:确保用户表(如`users`)已创建,包含必要的字段(如`id`、`username`、`email`等)。- **逻辑删除**:根据实际需求,可以选择物理删除或逻辑删除。- **数据关联**:如果用户数据与其他表有关联,需要考虑级联删除或处理关联数据,避免数据不一致。- **实体类定义**:定义与数据库表对应的实体类(如`User`),包含相应的属性和注解。- **权限控制**:确保只有授权用户才能执行删除操作,防止数据被误删或恶意删除。
2025-06-20 00:05:41
676
原创 67、数据访问-crud实验-分页数据展示
使用数据库的分页功能,如MySQL的`LIMIT`和`OFFSET`,或借助分页插件(如MyBatis的PageHelper)。分页数据展示是数据访问中常见的功能,用于将大量数据分割成多个页面显示,提升用户体验和系统性能。- 接收前端传递的当前页码(`currentPage`)和每页显示数量(`pageSize`)。1. **确定每页显示数量**:设定每页显示的数据条数(`pageSize`),如每页显示10条。- 接收后端返回的分页数据,展示当前页的数据。// 使用PageHelper进行分页查询。
2025-06-19 20:25:39
558
原创 66、数据访问-crud实验-数据列表展示【补录】
el-button @click="deleteUser(scope.row.id)" type="text">删除</el-button><el-button @click="editUser(scope.row)" type="text">编辑</el-button><el-table-column prop="username" label="用户名"></el-table-column>- 创建数据库表,例如`user`表,包含`id`、`username`、`password`等字段。
2025-06-18 12:51:30
857
原创 65、数据访问-整合MyBatisPlus操作数据库
queryWrapper.eq("username", "张三").like("password", "123");- **代码生成器**:使用MyBatis-Plus提供的代码生成器,快速生成实体类、Mapper接口等代码。- **版本管理**:及时关注MyBatis-Plus的版本更新,升级到最新稳定版,获取新特性和修复的漏洞。// 当前页,每页数量。- **性能优化**:合理使用分页查询、条件构造器,避免全表扫描;- 执行删除操作时,会自动更新该字段值,查询时自动过滤已逻辑删除的数据。
2025-06-18 12:50:12
392
原创 64、数据访问-整合Mybatis-注解配置混合版
**配置顺序**:如果同时为同一个Mapper接口配置注解和XML,需要在`mybatis-config.xml`中先配置`<mapper class="..."/>`,再配置`<mapper resource="..."/>`,以确保正确解析。- **方法名匹配**:XML中的`<select>`、`<insert>`等标签的`id`属性必须与Mapper接口中的方法名一致。- **命名空间匹配**:XML映射文件的`namespace`必须准确匹配Mapper接口的全限定名。
2025-06-17 13:05:09
413
原创 63、数据访问-整合mybatis-配置版
在`application.yml`或`application.properties`中配置MyBatis。- 在`resources`目录下创建`mapper`文件夹,放置Mapper对应的XML文件。- 在项目的`pom.xml`文件中添加MyBatis和数据库驱动的依赖。-- 其他依赖,如Spring、lombok等 -->- 在`application.yml`中配置数据库连接信息。- 配置MyBatis插件,如分页插件、性能分析插件等。-- MySQL驱动 -->-- 其他SQL语句 -->
2025-06-17 13:01:05
453
原创 60、数据访问-数据库场景的自动配置分析与整合测试
根据`application.properties`或`application.yml`中的配置(如`spring.datasource.url`、`spring.datasource.username`等),创建数据源实例。- 当引入数据库相关依赖(如`spring-boot-starter-jdbc`或`spring-boot-starter-data-jpa`)时,Spring Boot会自动检测类路径中的依赖。- 可通过`@Autowired`注入`JdbcTemplate`进行数据库操作。
2025-06-14 12:48:33
495
原创 59、定制化原理-SpringBoot定制化组件的几种方式
原理:`@EnableWebMvc`导入了`DelegatingWebMvcConfiguration`类,该类继承自`WebMvcConfigurationSupport`,导致`WebMvcAutoConfiguration`失效,从而禁用默认的Spring MVC自动配置。通过修改`application.properties`或`application.yml`文件,利用`@ConfigurationProperties`注解将配置项绑定到JavaBean上,从而调整组件的行为。
2025-06-14 12:46:37
472
原创 58、嵌入式Servlet容器-【源码分析】切换web服务器与定制化
`ServletWebServerFactoryAutoConfiguration`是关键的自动配置类,负责创建`ServletWebServerFactory`。通过以上方式,可以灵活地切换和定制Spring Boot的嵌入式Servlet容器,满足不同的应用需求。重新启动应用,Spring Boot将使用Jetty作为嵌入式Servlet容器。- 根据项目中引入的依赖,自动配置类会判断系统中存在哪些Web服务器相关的类。// 设置Jetty特有配置。-- 排除Tomcat -->
2025-06-13 18:14:42
457
原创 57、原生组件注入-【源码分析】DispatcherServlet注入原理
DispatcherServlet`的注入原理主要依赖于`Servlet`容器的生命周期和`Spring`的依赖注入机制。- `DispatcherServlet`继承自`FrameworkServlet`,而`FrameworkServlet`继承自`HttpServletBean`,最终`HttpServletBean`继承自`HttpServlet`。- 将当前`Servlet`转换为`BeanWrapper`,以便使用`Spring`的方式注入参数。
2025-06-13 18:13:39
422
原创 56、原生组件注入-原生注解与Spring方式注入
通过在组件类上使用`@WebServlet`、`@WebFilter`和`@WebListener`等注解,并配合`@ServletComponentScan`注解,Spring Boot会自动扫描并注册这些原生组件。在Spring Boot中,可以通过两种方式将原生的Servlet、Filter和Listener组件注入到应用程序中:**使用原生注解**和**使用Spring方式**。- 如果组件不需要依赖注入,且希望与Spring解耦,建议使用**原生注解方式**。### 一、使用原生注解注入。
2025-06-12 20:21:15
860
原创 55、错误处理-【源码流程】几种异常处理原理
Spring框架内置了一些异常处理器,如`DefaultHandlerExceptionResolver`,用于处理Spring框架自身抛出的异常。3. 根据异常类型查找`@ControllerAdvice`类中匹配的`@ExceptionHandler`方法。2. 如果找到精确匹配的错误页面,则返回该页面;否则,返回通用的`4xx.html`或`5xx.html`页面。- 在项目中定义特定的错误页面,如`error/404.html`、`error/5xx.html`等。// 跳转到错误页面。
2025-06-12 20:19:54
524
原创 54、错误处理-【源码流程】异常处理流程
`DefaultErrorAttributes` 将异常信息保存到 `request` 域的 `ERROR_ATTRIBUTE` 中,并返回 `null`。- 调用所有注册的 `HandlerExceptionResolver` 解析器,尝试处理异常。- 若存在对应的错误页面(如 `error/500.html`),则返回该页面。- 底层检测到未处理的异常后,会转发请求到 `/error` 路径。- 处理 `/error` 请求的控制器,负责返回错误响应。- 获取异常信息,设置响应状态码。
2025-06-11 20:52:48
582
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅