当前位置: 首页 > news >正文

010301-cdn_waf-web扩展1-基础入门-网络安全

文章目录

    • 1 WAF
      • 1.1WAF 的核心功能
      • 1.2 WAF 的部署类型
      • 1.3 WAF 的应用场景
      • 1.4 主流 WAF 产品
      • 1.5 如何选择 WAF?
      • 1.6 注意事项
      • 1.7 waf总结和演示
    • 2 CDN
      • 2.1 核心原理
      • 2.2 关键功能
      • 2.3 典型应用场景
      • 2.4 优势
      • 2.5 主流CDN服务商
      • 2.6 技术实现
      • 2.7 注意事项
      • 2.8cdn安全测试和演示
      • 结语

1 WAF

WAF(Web Application Firewall) 是一种专门用于保护 Web 应用程序的网络安全技术,通过监控和过滤 HTTP/HTTPS 流量,防御针对 Web 应用的恶意攻击。以下是关于 WAF 的详细介绍:


1.1WAF 的核心功能

  • 攻击防护
    拦截常见的 Web 攻击,例如:
    • SQL 注入(通过恶意 SQL 语句窃取数据)
    • 跨站脚本(XSS)(注入恶意脚本攻击用户)
    • 文件包含/目录遍历(非法访问服务器文件)
    • CSRF/DDoS 攻击(伪造请求或流量洪泛攻击)
  • 规则引擎
    基于预定义规则(如 OWASP Top 10)或自定义规则,识别并阻断可疑请求。
  • 流量监控与分析
    实时监控流量,提供攻击日志和可视化报表,帮助分析威胁趋势。
  • 防护模式
    支持 主动拦截(直接阻断攻击)或 被动检测(仅记录攻击行为)。

1.2 WAF 的部署类型

  • 硬件型 WAF
    部署在本地网络的物理设备,适合对性能要求高的大型企业。
  • 软件型 WAF
    以软件形式集成到服务器(如 ModSecurity),灵活但依赖服务器资源。
  • 云 WAF
    通过 SaaS 模式提供(如 Cloudflare、阿里云 WAF),无需部署硬件,适合中小型企业和云原生应用。

1.3 WAF 的应用场景

  • 保护敏感数据
    适用于金融、电商、医疗等行业,防止用户数据泄露。
  • 合规要求
    满足 GDPR、PCI DSS 等法规对 Web 安全的要求。
  • API 防护
    保护 RESTful API 或 GraphQL 接口,防止恶意调用。
  • 防爬虫与滥用
    阻止恶意爬虫、暴力破解或垃圾注册。

1.4 主流 WAF 产品

  • 开源方案
    • ModSecurity:与 Nginx/Apache 集成的开源 WAF,高度可定制。
    • NAXSI:轻量级 WAF,专为 Nginx 设计。
  • 商业方案
    • Cloudflare WAF:提供云防护和 DDoS 缓解。
    • Imperva:企业级 WAF,支持复杂规则和机器学习。
    • 阿里云 WAF:集成于阿里云生态,适合国内业务。
  • 云原生服务
    AWS WAF、Azure WAF 等,与云平台无缝集成。

1.5 如何选择 WAF?

  • 业务需求
    根据 Web 应用的规模、敏感性和合规要求选择类型(硬件/软件/云)。
  • 性能影响
    确保 WAF 不会显著增加延迟(如云 WAF 通常优化较好)。
  • 易用性
    界面是否友好?是否支持自定义规则和自动化更新?
  • 成本
    开源方案成本低但需技术维护;商业方案提供全面支持但费用较高。

1.6 注意事项

  • 误报与漏报
    WAF 可能误判正常流量为攻击(需调整规则)或漏过新型攻击(需更新规则库)。
  • 多层防护
    WAF 需与防火墙(FW)、入侵检测系统(IDS)等配合,形成纵深防御。
  • 定期维护
    更新规则库、分析日志、优化策略,以应对不断演变的攻击手法。

总结:WAF 是 Web 安全的关键防线,能有效降低数据泄露和业务中断风险。选择时需结合自身业务特点和技术能力,确保安全性与性能平衡。

1.7 waf总结和演示

原理:web应用防火墙,旨在提供保护

影响:常规web安全测试手段受到拦截

演示:这里使用哥斯拉测试用IIS搭建的网站,waf选择D盾。

未安装D盾防护模块测试如下图所示:

在这里插入图片描述

安装D盾防护模块测试如下图所示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其他方式搭建网站和其他waf这里不再一一测试。

2 CDN

CDN(Content Delivery Network,内容分发网络)是一种分布式服务器网络,通过将内容缓存到全球多个节点,使用户能够从最近的服务器获取数据,从而加速网站访问、提升稳定性并减少源服务器负载。以下是CDN的核心要点:

在这里插入图片描述


2.1 核心原理

  • 边缘节点:CDN在全球部署多个边缘服务器(PoP点),缓存静态资源(如图片、视频、CSS/JS文件)。
  • 就近访问:用户请求被自动路由到地理距离最近的节点,降低延迟。
  • 回源机制:若边缘节点无缓存,则从源服务器拉取内容并缓存。

2.2 关键功能

  • 加速访问:减少网络延迟,提升加载速度。
  • 负载均衡:分散流量,避免源服务器过载。
  • 安全防护:提供DDoS防御、WAF(Web应用防火墙)等。
  • 带宽优化:通过压缩和缓存减少带宽消耗。

2.3 典型应用场景

  • 静态资源分发:网页、图片、视频流(如Netflix、YouTube)。
  • 动态内容加速:API、实时数据(通过路由优化)。
  • 软件下载:游戏更新包、APP安装文件。
  • 直播与点播:低延迟视频传输。

2.4 优势

  • 用户体验提升:降低延迟,减少缓冲。
  • 高可用性:节点冗余,避免单点故障。
  • 全球化覆盖:尤其利于跨国业务。
  • 成本节约:减少源服务器带宽费用。

2.5 主流CDN服务商

  • 商业服务:Cloudflare、Akamai、AWS CloudFront、阿里云CDN、腾讯云CDN。
  • 开源方案:Nginx缓存、Varnish、Traefik。

2.6 技术实现

  • DNS解析:通过智能DNS将用户导向最优节点。
  • 缓存策略:设置TTL(过期时间),平衡新鲜度与效率。
  • 协议优化:支持HTTP/2、QUIC、Brotli压缩等。

2.7 注意事项

  • 缓存更新:需合理配置,避免内容过期。
  • 成本控制:按流量/请求计费,需监控用量。
  • 安全性:确保HTTPS加密,防范缓存污染。

2.8cdn安全测试和演示

原理:内容分发服务,旨在提高访问速度

影响:隐藏真实源IP,导致对目标测试错误

演示:阿里云备案名全局CDN加速服务,windows+BT宝塔面板+CDN服务

第一步:配置宝塔的域名绑定,如下图所示:

在这里插入图片描述

第二步:全站加数CDN

  • 配置全栈cdn加速:在这里插入图片描述

    • 等待几分钟生效

第三步:添加DNS CNAME记录

  • 根据配置向导,配置cname:配置生效如下图所示,在这里插入图片描述

  • cmd 命令测试

    C:\Users\Administrator>ping cdn.gaogzhen.com正在 Ping cdn.gaogzhen.com [27.221.44.52] 具有 32 字节的数据:
    来自 27.221.44.52 的回复: 字节=32 时间=8ms TTL=56
    来自 27.221.44.52 的回复: 字节=32 时间=8ms TTL=56
    
    • cdn生效
  • 在线平台测试,如下图哦所示:在这里插入图片描述

如果对IP:27.221.44.52进行安全测试,会失败,不是网站的真实IP;如果对该网站进行测试,需要绕过cdn找到真实(源)ip地址,后面讲解。

测试一个网站是否用开启cdn加速,通过在线平台ping测试,如果解析IP多个不一致,说明开启cdn加速。

结语

❓QQ:806797785

⭐️仓库地址:https://gitee.com/gaogzhen

⭐️仓库地址:https://github.com/gaogzhen

[1]D盾官网[CP/OL].

[2]站长工具-ping检测[CP/OL].

相关文章:

010301-cdn_waf-web扩展1-基础入门-网络安全

文章目录 1 WAF1.1WAF 的核心功能1.2 WAF 的部署类型1.3 WAF 的应用场景1.4 主流 WAF 产品1.5 如何选择 WAF?1.6 注意事项1.7 waf总结和演示 2 CDN2.1 核心原理2.2 关键功能2.3 典型应用场景2.4 优势2.5 主流CDN服务商2.6 技术实现2.7 注意事项2.8cdn安全测试和演示…...

CentOS7执行yum命令报错 Could not retrieve mirrorlist http://mirrorlist.centos.org

CentOS7执行yum命令报错 引更新yum源备份原有源创建新的源文件清理并重建缓存 引 CentOS 7 系统无法连接到 CentOS 的官方镜像站点。这通常是由于网络问题或 CentOS 7 已停止维护导致的(2024年6月30日后 CentOS 7 已进入 EOL) 报错明细: 已…...

在阿里云虚拟主机上启用WordPress伪静态

在阿里云虚拟主机上启用WordPress伪静态,需要根据虚拟主机的Web服务器类型(Nginx或Apache)进行相应的设置。以下是具体步骤: 1. 确认虚拟主机的Web服务器类型 登录阿里云虚拟主机管理控制台。 查看主机的配置信息,确认是使用Nginx还是Apac…...

【java 13天进阶Day06】Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法

Map集合 Collection是单值集合体系。 Map集合是另一个集合体系,是一种双列集合,每个元素包含两个值。 Map集合的每个元素的格式:keyvalue(键值对元素)。 Map集合也被称为“键值对集合”。 Map集合的完整格式:{key1value1 , ke…...

从代码学习深度学习 - 小批量随机梯度下降 PyTorch 版

文章目录 前言一、数据准备与处理1.1 数据集简介1.2 数据加载与预处理二、训练工具与辅助类三、可视化工具四、模型训练五、执行训练总结前言 深度学习是人工智能领域的核心技术之一,而小批量随机梯度下降(Mini-Batch Stochastic Gradient Descent, SGD)是训练神经网络的基…...

03、GPIO外设(三):标准库代码示例

标准库代码示例 1、点亮LED2、LED闪烁3、LED流水灯4、按键控制LED5、蜂鸣器 本章源代码链接: 链接: link 1、点亮LED 实验要求:点亮LED ①LED.c文件的代码如下: #include "LED.h"/*** LED引脚初始化*//* 定义数组,想要添加引脚…...

PyTorch 深度学习实战(37):分布式训练(DP/DDP/Deepspeed)实战

在上一篇文章中,我们探讨了混合精度训练与梯度缩放技术。本文将深入介绍分布式训练的三种主流方法:Data Parallel (DP)、Distributed Data Parallel (DDP) 和 DeepSpeed,帮助您掌握大规模模型训练的关键技术。我们将使用PyTorch在CIFAR-10分类…...

MCP系列之架构篇:深入理解MCP的设计架构

前言 在上一篇《MCP系列之基础篇》中,我们初步了解了MCP(模型上下文协议)的基本概念和价值。本篇文章将深入探讨MCP的技术架构,帮助开发者和技术爱好者更全面地理解这一协议的内部工作机制。我们将剖析MCP的核心组件、通信模型和工作流程,解析Host、Client和Server三者之…...

RT-Thread RTThread studio 初使用

RT-Thread Studio 下载 https://www.rt-thread.org/studio.html 安装使用 https://bbs.elecfans.com/jishu_2425653_1_1.html 4 编译问题解决 问题一:error: unknown type name clock_t 具体的类型值是在sys/_types.h中定义的,需要包含sys/_types.h 这个…...

设计模式 --- 外观模式

外观模式是一种结构型设计模式,为复杂子系统提供​​统一的高层接口​​,通过定义一个外观类来​​简化客户端与子系统的交互​​,降低系统耦合度。这种模式隐藏了子系统的复杂性,将客户端与子系统的实现细节隔离开来,…...

第十二节:原理深挖-React Fiber架构核心思想

链表结构、时间切片(Time Slicing) 优先级调度实现(如用户输入>网络请求) React Fiber架构深度解析:从链表到优先级调度的革命性升级 一、Fiber架构核心设计思想 React Fiber是React 16的底层协调算法重构&#x…...

利用DeepSeek设计一个HTML批量转换工具设计

需求词:需要设计一个能够批量转换HTML文件格式的网页在线工具,界面简洁易用 功能概述 设计一个网页在线工具,允许用户批量上传HTML文件并进行格式转换,包括: HTML美化/格式化 HTML压缩/最小化 HTML到XHTML转换 HT…...

TypeScript 从入门到精通:完整教程与实战应用(一)

1. TypeScript 简介 什么是 TypeScript? TypeScript 是 JavaScript 的超集,添加了静态类型系统,由微软开发并开源。它编译成纯 JavaScript 运行在任何 JavaScript 环境中。 为什么使用 TypeScript? 类型安全:在编译时…...

什么是Python单例模式

什么是Python单例模式 Python单例模式是一种创建型设计模式,目的是确保一个类仅有一个实例,并提供一个全局访问点来获取该实例。以下从作用和示例进行介绍: 作用 控制资源使用:避免对系统资源的重复消耗,像数据库连接、文件句柄等稀缺资源,只创建一个实例来管理使用,防…...

PHP8.2.9NTS版本使用composer报错,扩展找不到的问题处理

使用composer install时报错: The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at y our own risk, by setting the ‘disable-tls’ option to true.…...

memcache使用

Memcache 是一款高性能的分布式内存对象缓存系统,以下是其使用方法: 安装与配置 • 安装 Memcached :在 CentOS 7 系统中,可使用命令sudo yum install memcached进行安装,也可从源码编译安装,如下载 memca…...

旅游资源网站登录(jsp+ssm+mysql5.x)

旅游资源网站登录(jspssmmysql5.x) 旅游资源网站是一个为旅游爱好者提供全面服务的平台。网站登录界面简洁明了,用户可以选择以管理员或普通用户身份登录。成功登录后,用户可以访问个人中心,进行修改密码和个人信息管理。用户管理模块允许管…...

Nacos 中使用了哪些缓存?缓存的目的是什么?是如何实现的?

Nacos 在服务端和客户端都广泛的使用了缓存机制,下面着重介绍一下。 一、 Nacos 服务端缓存 (Server-Side Caching) Nacos 服务端缓存的主要目的是提高读取性能、降低对底层存储(数据库或磁盘文件)的压力,并加速对客户端请求的响…...

「GitHub热榜」AIGC系统源码:AI问答+绘画+PPT+音乐生成一站式

—零门槛搭建私有化AI内容工厂,源码开放商业落地指南 为什么全栈AIGC系统成为企业刚需? 1. 传统方案的致命缺陷 痛点 使用ChatGPTMidjourneyCanva 本全栈方案 工具割裂 需切换5平台 一个系统全搞定 成本 年费50万 一次部署永久免费 数据安全 …...

Dify LLM大模型参数(一)

深入了解大语言模型(LLM)的参数设置 模型的参数对模型的输出效果有着至关重要的影响。不同的模型会拥有不同的参数,而这些参数的设置将直接影响模型的生成结果。以下是 DeepSeek 模型参数的详细介绍: 温度(Tempera…...

快速使用工具Cursor

Cursor 是一款面向开发者的集成开发环境,用途如下: 代码编写:支持多语言,有语法高亮、智能补全与格式化功能。代码生成:能依据自然语言描述生成代码。协作开发:支持多人实时协作编辑项目。调试程序&#x…...

JVM之经典垃圾回收器

一、垃圾回收算法 1. 标记-清除(Mark-Sweep) 步骤: 标记:遍历对象图,标记所有存活对象。清除:回收未被标记的垃圾对象。 特点:简单,但会产生内存碎片。 2. 标记-复制(…...

【“星瑞” O6 评测】—NPU 部署 face parser 模型

前言 瑞莎星睿 O6 (Radxa Orion O6) 拥有高达 28.8TOPs NPU (Neural Processing Unit) 算力,支持 INT4 / INT8 / INT16 / FP16 / BF16 和 TF32 类型的加速。这里通过通过官方的工具链进行FaceParsingBiSeNet的部署 1. FaceParsingBiSeNet onnx 推理 首先从百度网盘…...

hadoop的三大结构及其各自的作用

Hadoop 主要有三大核心组件,分别是 HDFS(Hadoop Distributed File System)、MapReduce 和 YARN,以下是它们各自的作用: HDFS(Hadoop Distributed File System) 存储数据:HDFS 是一个…...

免费将静态网站部署到服务器方法(仅支持HTML,CSS,JS)

原视频链接:把HTML免费部署到网站上,实现别人也能访问的教程来啦QAQ_哔哩哔哩_bilibili 注意:仅支持HTML、CSS、JS。不支持Vue等框架。 1.打开网站www.wordpress.org 点击红框按钮 点击红框按钮下载wordpress模板文件并解压。 将自己编写的…...

2、SpringAI接入ChatGPT与微服务整合

2、SpringAI接入ChatGPT与微服务整合 小薛博客AI 大模型资料 1、SpringAI简介 https://spring.io/projects/spring-ai Spring AI是一个人工智能工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于人工智能领域&#…...

6.7.图的深度优先遍历(英文缩写DFS)

树是特殊的图,没有回路的图就是树 BFS与DFS的区别在于,BFS使用了队列,DFS使用了栈 一.深度优先遍历: 1.树的深度优先遍历: 树的深度优先遍历分为先根遍历和后根遍历。 以树的先根遍历为例: 上述图片里…...

若依同步企业微信架构及ACTIVITI

企业微信配置 1.进入企业微信后台管理应用管理,新建应用 2.配置网页授权及JS-SDK 将验证文件下载到项目的pubilc下 启动项目 npm run dev 然后验证域名归属 3.配置企业可信IP 公网IP地址即可,仅此IP的服务可调用企业微信接口信息 4.构造域名回调域&a…...

PyTorch分布式训练调试方法(跟踪调用过程)

PyTorch分布式训练调试方法(跟踪调用过程) 背景 在分布式深度学习训练场景中,通信操作(如AllReduce、Send/Recv)和CUDA操作的时序问题往往难以调试。本工具通过以下方式提供调试支持: 拦截所有PyTorch张量操作并记录调用栈监控分布式通信操作的完整生命周期自动生成带时间…...

跟我学C++中级篇——内存异常的分析

一、内存问题引发的现象 在实际使用电脑过程中,经常会遇到电脑卡住了,鼠标和键盘也没反应。这时候儿会怎么办?其实此时打开任务管理器,就可以发现,有几种情况:一是CPU占用过高;二是IO占用过高&…...

HTML新标签与核心 API 实战

HTML5 新标签与核心 API 实战 引言 今天咱们来看看HTML5 新标签以及一些核心 API。 HTML5 的引入彻底改变了 Web 前端开发格局&#xff0c;尤其是其新增的多媒体和交互能力标签。对于前端开发者而言&#xff0c;理解并掌握 <video>、<audio>、<canvas> 和…...

vscode 红色波浪线问题

VSCode 红色波浪线问题终极解决方案 问题描述 在编写 C 项目时&#xff0c;CMake 编译通过但代码出现红色波浪线&#xff0c;常见问题&#xff1a; #include 提示找不到头文件枚举或类型名未定义成员函数或变量无法识别 这些是 VSCode 的 IntelliSense 配置问题&#xff0c…...

类型补充,scan 和数据库管理命令

Redis 数据类型 stream stream 就是一个队列&#xff08;阻塞队列&#xff09; Redis 作为一个消息队列的重要支撑&#xff0c;属于是 list 中 blpop 和 brpop 的升级版本 geospatial 主要用于存储地理位置信息&#xff0c;并对存储的信息进行操作 存储一些点后&#xff0c…...

AI Agent系列(十) -Data Agent(数据分析智能体)开源资源汇总

AI Agent系列【十】 前言一、 Open Interpreter1.1 Open Interpreter的特点1.2 Open Interpreter的优势1.3 Open Interpreter的应用场景 二、DB-GPT2.1 核心能力2.2关键特性:2.3 系统架构 三、DeepBI3.1 特点 前言 DataAgent的能力本质上比较依赖大模型的自然语言转API/SQL/代…...

Vue3 + TypeScript中provide和inject的用法示例

基础写法&#xff08;类型安全&#xff09; typescript // parent.component.vue import { provide, ref } from vue import type { InjectionKey } from vue// 1. 定义类型化的 InjectionKey const COUNTER_KEY Symbol() as InjectionKey<number> const USER_KEY Sy…...

【国家能源集团生态协作平台-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

不确定与非单调推理的基本概念

前文我们讨论了建立在经典逻辑基础上的确定性推理,这是一种运用确定性知识进行的精确推理。同时,它又是一种单调性推理,即随着新知识的加人,推出的结论或证明了的命题将单调地增加。但是,人们通常是在信息不完善、不精确的情况下运用不确定性知识进行思维、求解问题的,推…...

系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)高效记忆要点、知识体系、考点详解、、练习题并提供答案与解析

计算机组成与体系结构高效记忆要点 从CPU、存储系统、I/O系统三大模块展开&#xff0c;结合高频考点与记忆技巧&#xff0c;有助于系统化掌握核心知识点。 一、CPU结构与工作原理 1. CPU的组成 核心组件&#xff1a; 运算器&#xff08;ALU&#xff09; &#xff1a;负责算术…...

FreeSWITCH中SIP网关(Gateway)操作

freeswitch是一款简单好用的VOIP开源软交换平台。 以下是一篇关于FreeSWITCH中SIP网关&#xff08;Gateway&#xff09;操作的技术指南&#xff0c;基于提供的官方文档内容整理&#xff1a; 一、网关生命周期管理 1. 创建新SIP Profile并启动 FreeSWITCH支持多SIP Profile&…...

构建自动翻译工作流:技术与实践

一、引言 制药行业客户迫切需要一种翻译解决方案&#xff0c;以解决公司内部多样化的翻译难题。他们需要的不仅是提升翻译效率和准确性的工具&#xff0c;更希望能够保持文档的原始格式。我们观察到客户的需求广泛&#xff0c;包括多语言办公文件、研究文档和药品报批文件等&a…...

在pycharm中搭建yolo11分类检测系统--PyQt5学习(二)

第二部分 测试本地pycharm通过程序连接远程服务器autodl 模型的推理需要借助远程服务器autodl&#xff0c;但是界面的运行是在pycharm中&#xff0c;我的设想是按钮调用一个py文件就好了。 1. 本地运行PyQt5界面。 2. 当需要载入权重时&#xff0c;通过SSH连接到AutodL服务…...

汽车行驶工况特征参数:从“速度曲线”到“驾驶DNA”的硬核解码

作为新能源汽车行业的从业者&#xff0c;你是否曾困惑于这些问题&#xff1a; 为什么同一款电动车&#xff0c;不同用户的实际续航差异高达30%&#xff1f;如何精准量化驾驶行为对电池寿命的影响&#xff1f;车企标定的“NEDC续航”与真实路况差距的根源是什么&#xff1f; 这…...

dify本地部署,docker-plugin_daemon-1启动不了,一直报错

解决办法&#xff0c;修改这两个配置&#xff0c;然后重启 进入源代码目录&#xff0c;docker文件夹下 docker compose down docker compose up -d https://github.com/langgenius/dify/issues/17677...

2025 年第十五届 MathorCup 数学应用挑战赛 A 题:汽车风阻预测

A 题&#xff1a;汽车风阻预测 在空气动力学领域&#xff0c;空气阻力对汽车以及航空航天工业中载具的 性能和效率有着至关重要的影响。以往的研究表明&#xff0c;预测这种阻力需 要借助先进的工业仿真软件进行大规模流体力学模拟仿真&#xff0c;而该模拟 过程不仅算法复杂…...

AI Agents系列之AI代理架构体系

1. 引言 智能体架构是定义智能体组件如何组织和交互的蓝图,使智能体能够感知其环境、推理并采取行动。本质上,它就像是智能体的数字大脑——集成了“眼睛”(传感器)、“大脑”(决策逻辑)和“手”(执行器),用于处理信息并采取行动。 选择正确的架构对于构建有效的智能…...

使用Java动态数据生成PDF报告:简化您的报告导出流程

在当今的数据驱动世界中&#xff0c;能够快速且有效地将数据转化为可视化的报告是一项宝贵的技能。无论是商业分析、项目管理还是学术研究&#xff0c;PDF报告都是分享和存档信息的理想格式。在这篇博客中&#xff0c;我们将探讨如何使用Java编程语言结合iText库来动态生成包含…...

Sqlite3交叉编译全过程

Sqlite3交叉编译全过程 一、概述二、下载三、解压四、配置五、编译六、安装七、验证文件类型八、移植8.1、头文件sqlite3.h8.2、动态链接库移植8.3、静态态链接库移植 九、验证使用9.1. 关键函数说明 十、触发器使用十一、sqlite表清空且恢复id值十二、全文总结 一、概述 SQLi…...

Qt QThread 两种线程管理方法

在 Qt 中,QThread 有两种常见的用法,分别对应不同的线程管理模型。这两种方法各有优缺点,适用于不同的场景: 1. 子类化 QThread(继承 QThread,重写 run() 方法) 这是传统的线程用法,类似于 Java 或 C++ 标准库中的线程模型。通过继承 QThread 并重写 run() 方法,将需…...

React 中如何获取 DOM:用 useRef 操作非受控组件

&#x1f4cc; 场景说明 在写 React 的时候&#xff0c;通常我们是通过“受控组件”来管理表单元素&#xff0c;比如用 useState 控制 <input> 的值。 但有些时候&#xff0c;控制的需求只是临时性的&#xff0c;或者完全不需要重新渲染组件&#xff0c;这时候直接访问…...

GoogleCodeUtil.java

Google动态验证码实现 GoogleCodeUtil.java package zwf;import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.security.SecureRandom;/** https://mvnrepository.com/artifact/commons-codec/…...