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

Linux\CentOS解决OpenSSH和Nginx安全漏洞

前言

由于有些服务器需要对公网提供服务、客户对于服务器安全比较重视,需要公司提供服务器安全报告。大多数服务器经过漏洞扫描之后、会出现很多软件低版本的漏洞,此时就需要升级软件的版本来解决这些漏洞问题。本篇文章记录升级软件过程。

漏洞编号漏洞说明
CVE-2023-38408OpenSSH漏洞
CVE-2008-3844OpenSSH漏洞
CVE-2021-41617OpenSSH漏洞
CVE-2021-3618Nginx漏洞

下面方案均在生产环境验证过、但是在升级时 仍然要给服务器做快照备份 以防出现生产事故!!!

一、升级OpenSSH ( OpenSSH_7.4p1 到 OpenSSH_9.9p2 )

1、安装一些必要的命令

先切换root用户 (如果本身就是root用户忽略 sudo -i 这步)

sudo  -i

输入root用户密码

# 安装一些必要的命令(需要能访问外网)
yum install wget gcc openssl-devel pam-devel rpm-build zlib-devel -y

如果你的服务器不能访问外网 就需要离线安装一些软件比较麻烦 参考下面这篇文章
https://liucy.blog.csdn.net/article/details/136536352

上传提供的两个文件到 /home 目录 (上传文件的目录只要root用户能访问就行)
openssh-9.9p2.tar.gz
openssl-1.1.1t.tar.gz

文件获取地址:
通过网盘分享的文件:漏洞处理所需软件
链接: https://pan.baidu.com/s/1eiv04XBvNVjGZNZ3sl0WdQ?pwd=java 提取码: java

2、解压openssl-1.1.1t.tar.gz并放到/usr/local/目录

tar xf openssl-1.1.1t.tar.gz -C /usr/local

3、编译安装openssl

# 进入openssl目录
cd /usr/local/openssl-1.1.1t# 编译安装openssl
./config shared --prefix=/usr/local/openssl
make -j 4
make install

4、为openssl做软连接 (需要特别注意按照步骤执行)

echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
# 加载配置文件
ldconfig
# 备份以前的openssl
mv /usr/bin/openssl /usr/bin/openssl.old
# 软连接,如果提示软连接已存在,记得备份软连接,然后在执行下面再次软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上;
ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

如果提示软连接已存在 需要先备份再重新链接 (如果上面软连接执行没有提示 则忽略这步备份操作)

mv  /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1.bak
mv /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1.bak

查看openssl版本

openssl version -a

结果: OpenSSL 1.1.1t 7 Feb 2023

5、查看、备份并卸载原有OpenSSH

注意:这一步需要确保终端一直连接 断开远程连接就不能用了(另开一个远程连接放在那一直保持连接,防止出现问题无法登录机器 , 可以新开一个root用户窗口 输入 vi test 放在那不动直到后续升级操作完成)

# 查看当前安装包
[root@localhost ~]# rpm -qa | grep openssh
# 结果如下
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64# 查看当前OpenSSH版本(Centos7 默认使用OpenSSH_7.4p1)
[root@localhost ~]# ssh -V
# 结果如下
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017# 备份现有的SSH
[root@localhost ~]# mv /etc/ssh/ /etc/ssh.bak
[root@localhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
[root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak# 如果您是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作
[root@localhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
mv: 无法获取'/etc/init.d/sshd' 的文件状态(stat): No such file or directory# 卸载现有OpenSSH
rpm -e --nodeps $(rpm -qa |grep openssh)

确保已经卸载成功(这步执行后没有返回数据则卸载成功)

rpm -qa | grep openssh

六、解压并编译安装OpenSSH

# 先进入openssh安装包所在目录 将下载的openssh安装包移动到/usr/local下
cd /home
[root@localhost home]# mv openssh-9.9p2.tar.gz /usr/local/# 进入/usr/local/目录解压openssh-9.9p2.tar.gz
[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar xf openssh-9.9p2.tar.gz# 进入openssh目录
[root@localhost local]# cd openssh-9.9p2# 编译安装  下面第一个命令是分行的 要复制完整 
[root@localhost openssh-9.9p2]# CCFLAGS="-I/usr/local/include" \
LDFLAGS="-L/usr/local/lib64" \
./configure \
--sysconfdir=/etc/ssh \
--with-zlib \
--with-ssl-dir=/usr/local/openssl[root@localhost openssh-9.9p2]# make -j 4
[root@localhost openssh-9.9p2]# make install

7、授权

[root@localhost openssh-9.9p2]# chmod 600 /etc/ssh/*

8、复制配置文件

[root@localhost openssh-9.9p2]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
[root@localhost openssh-9.9p2]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
[root@localhost openssh-9.9p2]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
[root@localhost openssh-9.9p2]# cp -ar /usr/local/openssh-9.9p2/contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-9.9p2]# cp -ar /usr/local/openssh-9.9p2/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam

9、修改配置允许root用户远程登录

# 修改配置允许root用户远程登录(允许使用密码登录,允许root远程登录,开启端口,赋予/etc/init.d/sshd权限)  从cat 复制到 最后一行的EOF 并执行
##   下面这些配置 是比较安全的配置  如果有特殊需求 按需修改cat >>/etc/ssh/sshd_config<<EOF
LogLevel INFO
LoginGraceTime 1m
PermitRootLogin yes
PasswordAuthentication yes
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
Protocol 2
Banner /etc/issue.net
PermitEmptyPasswords no
HostbasedAuthentication no
IgnoreRhosts yes
X11Forwarding no
MaxAuthTries 4
ClientAliveInterval 300
ClientAliveCountMax 0
EOF[root@localhost openssh-9.9p2]# sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
[root@localhost openssh-9.9p2]# chmod 755 /etc/init.d/sshd

10、启用sshd,生成服务配置文件,并重启服务

# 启用sshd,生成服务配置文件
[root@localhost openssh-9.9p2]# systemctl enable sshd
# 下面两行是显示的结果
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on# 重启服务
[root@localhost openssh-9.9p2]# systemctl restart sshd# 查看服务状态
[root@localhost openssh-9.9p2]# systemctl status sshd

验证升级是否成功

[root@localhost ~]# ssh -V
# 显示结果
OpenSSH_9.9p2, OpenSSL 1.1.1t  7 Feb 2023

二、升级Nginx (Nginx1.20.2升级到Nginx1.26.3)

由于nginx一般都是24小时提供服务,所以下面是不中断服务热升级方案。

1、上传 nginx-1.26.3.tar.gz 到 /home 目录

当前如果不是root用户需要先切换root用户:

sudo -i 

输入密码: root用户密码

2、解压

cd /hometar -xzf nginx-1.26.3.tar.gz

3、进入 nginx-1.26.3 解压目录

cd /home/nginx-1.26.3

4、查看原nginx编译参数

# 如果下面命令不行 就需要进入老的nginx安装目录下的sbin目录中  ./nginx -V  查看
nginx -V

4、执行 ./configure 配置nginx (一定要和老版本的nginx配置保持一致)

(注意下面加的参数仅是示例参数,一定要替换成你的真实参数)

# 下面  ./configure 后面的参数需要和老版本查到的参数保持一致 (下面加到参数仅是示例参数) 
./configure \--prefix=/usr/share/nginx \--sbin-path=/usr/sbin/nginx \

5、开始编译

make

6、备份老版本的nginx文件

whereis nginx ## 如果是如下目录/usr/sbin (注意这里是你nginx老版本的安装目录)
cp  /usr/sbin/nginx  /usr/sbin/ngin_bak_old# 复制编译好的nginx1.26.3 到老的nginx目录
cp -f /home/nginx-1.26.3/objs/nginx  /usr/sbin/

7、开始热启动 新版本进程 并主动退出旧版本进程

# 查询老版本nginx进程号
ps aux | grep nginx## 启动新版本
kill -USR2 35081     ## 35081换成你查到的旧版本的nginx master进程号    ps aux | grep nginx  ## 此时启动了两个nginx进程

8、此时有两套nginx进程 开始回收旧的worker进程 退出旧版本的master进程

kill -WINCH 35081     ## 旧版本的nginx master进程号 (注意这里还是 旧版本的nginx master进程号)ps aux | grep nginx   ## 发现旧版本的nginx worker进程退出了## 再退出旧版本的nginx主进程
kill -QUIT  35081      ## 旧版本的nginx master进程号

验证升级是否成功

cd /usr/local/nginx/sbin
./nginx -V
# 显示结果
nginx version: nginx/1.26.3

相关文章:

Linux\CentOS解决OpenSSH和Nginx安全漏洞

前言 由于有些服务器需要对公网提供服务、客户对于服务器安全比较重视&#xff0c;需要公司提供服务器安全报告。大多数服务器经过漏洞扫描之后、会出现很多软件低版本的漏洞&#xff0c;此时就需要升级软件的版本来解决这些漏洞问题。本篇文章记录升级软件过程。 漏洞编号漏…...

ubuntu22.04 ROS2humble 路径文件

ROS2humble 路径文件 /opt/ros/humble/include/opt/ros/humble/lib/opt/ros/humble/share 下载ros2之后会有下面的文件&#xff0c;在/opt/ros/humble下 /opt/ros/humble/include C/C 头文件&#xff08;.h, .hpp&#xff09; /opt/ros/humble/lib 作用: 存放 编译生成的二…...

zookeeper部署教程

在Linux系统中离线安装并配置ZooKeeper&#xff0c;可按以下步骤操作&#xff1a; 1. 准备安装包和依赖 下载ZooKeeper&#xff1a;在有网络的环境下&#xff0c;前往Apache ZooKeeper官网下载所需的稳定版本&#xff0c;例如zookeeper-3.8.2.tar.gz。准备JDK&#xff1a;Zoo…...

生成信息提取的大型语言模型综述

摘要 信息提取&#xff08;IE&#xff09;旨在从简单的自然语言文本中提取结构知识。最近&#xff0c;生成型大型语言模型&#xff08;LLMs&#xff09;在文本理解和生成方面表现出了显著的能力。因此&#xff0c;已经提出了许多基于生成范式将LLM集成到IE任务中的工作。为了对…...

霸王茶姬小程序(2025年1月版)任务脚本

脚本用于自动执行微信小程序霸王茶姬的日常签到和积分管理任务。 脚本概述 脚本设置了定时任务(cron),每天运行两次,主要用于自动签到以获取积分,积分可以用来换取优惠券。 核心方法 constructor:构造函数,用于初始化网络请求的配置,设置了基础的 HTTP 请求头等。 logi…...

Maven中为什么有些依赖不用引入版本号

先给出一个例子&#xff1a; <parent><artifactId>sky-take-out</artifactId><groupId>com.sky</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>sky-s…...

机器学习——集成学习框架(GBDT、XGBoost、LightGBM、CatBoost)、调参方法

一、集成学习框架 对训练样本较少的结构化数据领域&#xff0c;Boosting算法仍然是常用项 XGBoost、CatBoost和LightGBM都是以决策树为基础的集成学习框架 三个学习框架的发展是&#xff1a;XGBoost是在GBDT的基础上优化而来&#xff0c;CatBoost和LightGBM是在XGBoost的基础上…...

第十二章——位运算

按位的与& 若x的第i位和y的第i位都是1&#xff0c;那么&#xff08;x&y&#xff09;1&#xff0c;否则&#xff08;x&y&#xff09; 0 应用&#xff1a;希望让某一位或某些位为0 。取一个数中的一段。 按位的或| 若x的第i位1或y的第i位1&#xff0c;那么&…...

陪伴就诊 APP 功能架构:如何通过特定模块筛选优秀陪诊师

在当今社会&#xff0c;随着人们对医疗服务品质需求的提升&#xff0c;陪诊师这一职业应运而生。然而&#xff0c;市场上陪诊师众多&#xff0c;水平参差不齐&#xff0c;如何筛选出优秀的陪诊师成了大家关注的焦点。而陪伴就诊 APP 的等级功能&#xff0c;为我们提供了一个有效…...

UI产品经理基础(六):如何解决用户的质疑?

在需求调查中遇到用户质疑“不专业”或“不了解需求”&#xff0c;本质上是用户对产品经理的信任缺失或沟通鸿沟导致的。要化解这种质疑&#xff0c;需从专业能力展示、沟通方式优化、用户参与感提升三个维度切入&#xff0c;结合具体场景采取针对性策略。以下是系统化的解决方…...

【江协科技STM32】BKP备寄存器RTC实时时钟(学习笔记)

BKP备寄存器 BKP简介 BKP&#xff08;Backup Registers&#xff09;备份寄存器BKP可用于存储用户应用程序数据。当VDD&#xff08;2.0~3.6V&#xff09;电源被切断&#xff0c;他们仍然由VBAT&#xff08;1.8~3.6V&#xff09;维持供电。当系统在待机模式下被唤醒&#xff0…...

Flutter项目之table页面实现

目录&#xff1a; 1、首页页面index.dart&#xff08;首页table页面&#xff09;searchbar.dart (搜索页面)common_swiper.dart (轮播图)index_navigation.dart (导航区域)index_navigatorItem_list.dart (数组构造) 2、房屋推荐index_recommond.dart (房屋推荐区域)IndexRecom…...

Stable Virtual Camera 重新定义3D内容生成,解锁图像新维度;BatteryLife助力更精准预测电池寿命

在数字内容创作的激烈竞争中&#xff0c;Stability AI 正站在命运的十字路口。这家曾以 Stable Diffusion 引爆图像生成革命的公司&#xff0c;却因上层管理问题陷入了危机。近期&#xff0c;Stability AI 推出了 Stable Virtual Camera 模型&#xff0c;不知能否以一记重拳打破…...

物理安全——问答

目录 1、计算机的物理安全包含哪些内容 1. 设备保护 2. 访问控制 3. 电力与环境安全 4. 数据存储保护 5. 硬件防护 6. 监控与审计 7. 灾难恢复与应急响应 8. 拆卸与维修安全 2、物理安全有哪些需要关注的问题 1、计算机的物理安全包含哪些内容 1. 设备保护 防止盗窃&…...

「查缺补漏」巩固你的 RabbitMQ 知识体系

1 MQ 存在的意义 消息中间件一般主要用来做 异步处理、应用解耦、流量削峰、日志处理 等方面。 1.1 异步处理 一个用户登陆网址注册&#xff0c;然后系统发短信跟邮件告知注册成功&#xff0c;一般有三种解决方法。 串行方式&#xff0c;依次执行&#xff0c;问题是用户注册…...

前后前缀

一种特殊的前缀方法&#xff1a; 通过前后两次前缀&#xff0c;可以求出目的区间值 例题1&#xff1a; 最大或值&#xff1a;2680. 最大或值 - 力扣&#xff08;LeetCode&#xff09;&#xff08;贪心前缀&#xff09; 贪心可知只让一个数变化最后或值最大&#xff0c;所以通过…...

C++细节知识for面试

1. linux上C程序可用的栈和堆大小分别是多少&#xff0c;为什么栈大小小于堆&#xff1f; 1. 栈&#xff08;Stack&#xff09;大小 栈默认为8MB&#xff0c;可修改。 为什么是这个大小&#xff1a; ​安全性&#xff1a;限制栈大小可防止无限递归或过深的函数调用导致内存…...

构建高可用性西门子Camstar服务守护者:异常监控与自愈实践

在智能制造领域,西门子Camstar作为领先的MES系统承载着关键生产业务。但在实际运维中,我们发现其服务常因数据库负载激增(如SQL阻塞链超时)或应用服务器资源耗尽(CPU峰值达90%以上)导致服务不可用。传统人工干预方式平均故障恢复时间长达47分钟,这对连续生产场景构成了严…...

DeepSeek-V3-250324: AI模型新突破,性能超越GPT-4.5

DeepSeek 于 3 月 25 日宣布完成 V3 模型的小版本升级&#xff0c;推出 DeepSeek-V3-250324 版本。新版本在推理能力、代码生成、中文写作及多模态任务上实现显著优化&#xff0c;尤其在数学和代码类评测中得分超越 GPT-4.5&#xff0c;引发行业高度关注。 DeepSeek-V3-250324…...

OSPF邻居状态机

OSPF&#xff08;Open Shortest Path First&#xff09;协议的邻接关系状态机描述了两台OSPF路由器之间建立和维护邻接关系的过程。以下是每个状态的简要描述&#xff1a; Down State&#xff08;关闭状态&#xff09; 描述&#xff1a;这是OSPF邻接关系的初始状态&#xff0c;…...

使用tensorflow实现线性回归

目录 前言使用TensorFlow实现算法的基本套路:实战 前言 实现一个算法主要从以下三步入手: 找到这个算法的预测函数, 比如线性回归的预测函数形式为:y wx b, 找到这个算法的损失函数 , 比如线性回归算法的损失函数为最小二乘法 找到让损失函数求得最小值的时候的系数, 这时一…...

CF每日5题Day4(1400)

好困&#xff0c;感觉很累&#xff0c;今天想赶紧写完题早睡。睡眠不足感觉做题都慢了。 1- 1761C 构造 void solve(){int n;cin>>n;vector<vector<int>>a(n1);forr(i,1,n){//保证每个集合不同a[i].push_back(i);}forr(i,1,n){string s;cin>>s;forr(…...

Vala 编程语言教程-继承

继承‌ 在 Vala 中&#xff0c;一个类可以继承自 ‌一个或零个‌ 其他类。尽管实际开发中通常继承一个类&#xff08;不同于 Java 等语言的隐式继承机制&#xff09;&#xff0c;但 Vala 并不强制要求必须继承。 当定义继承自其他类的子类时&#xff0c;子类的实例与父…...

CLion下载安装(Windows11)

目录 CLion工具下载安装其他 CLion CLion-2024.1.4.exe 工具 系统&#xff1a;Windows 11 下载 1.通过百度网盘分享的文件&#xff1a;CLion-2024.1.4.exe 链接&#xff1a;https://pan.baidu.com/s/1-zH0rZPCZtQ60IqdHA7Cew?pwdux5a 提取码&#xff1a;ux5a 安装 打开…...

QEMU源码全解析 —— 块设备虚拟化(12)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(11) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! QEMU初始化阶段的块设备虚拟化 从模板生成类和类的实例化 本回继续解析QEMU类Java反…...

如何使用VS中的Android Game Development Extension (AGDE) 来查看安卓 Logcat 日志

一、首先按照以下 指引 中的 第1、2步骤&#xff0c;安装一下 AGDE &#xff0c;AGDE 的安装包可以在官网上找到。 UE4 使用AndroidGameDevelopmentExtension&#xff08;AGDE&#xff09;对安卓客户端做“断点调试”与“代码热更”-CSDN博客 在执行第二步骤前&#xff0c;记得…...

Z字形变换

将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输出需要从左往右…...

跟着尚硅谷学vue-day1

前言&#xff1a;企业多用vue3,但是考虑到时间较充足,先学vue2,学vue3较为方便。 1.vue是什么&#xff1f; 一套用于构建用户界面的渐进式Javascript 框架 构建用户界面&#xff1a;数据->界面 渐进式&#xff1a;Vue可以自底向上逐层的应用 简单应用: 只需一个轻量小…...

平板实现 adb connect 连接的步骤

1. 检查设备的开发者选项 确保平板设备已开启开发者模式&#xff0c;并启用了USB调试。 2. 检查设备和电脑的网络连接 确保平板和电脑连接到同一个Wi-Fi网络&#xff0c;确认设备的 IP 地址是否正确。 通过 ping 命令测试&#xff1a; ping 192.168.3.243. 通过USB线进行初…...

VUE3+TypeScript项目,使用html2Canvas+jspdf生成PDF并实现--分页--页眉--页尾

使用html2CanvasJsPDF生成pdf&#xff0c;并实现分页添加页眉页尾 1.封装方法htmlToPdfPage.ts /**path: src/utils/htmlToPdfPage.tsname: 导出页面为PDF格式 并添加页眉页尾 **/ /*** 封装思路* 1.将页面根据A4大小分隔边距&#xff0c;避免内容被中间截断* 所有元素层级不要…...

windows第十八章 菜单、工具栏、状态栏

文章目录 创建框架窗口菜单菜单的风格通过资源创建菜单菜单的各种使用通过代码创建菜单在鼠标位置右键弹出菜单 CMenu常用函数介绍工具栏方式一&#xff0c;从资源创建工具栏方式二&#xff0c;代码创建 状态栏状态栏基础创建状态栏 创建框架窗口 手动创建一个空项目&#xff…...

C语言中的位域:节省内存的标志位管理技术

位域&#xff08;Bit-field&#xff09; 是 C 语言中的一种特性&#xff0c;允许在结构体&#xff08;struct&#xff09;中定义占用特定位数的成员变量。通过位域&#xff0c;可以更精细地控制内存的使用&#xff0c;尤其是在需要存储多个布尔值或小范围整数时&#xff0c;可以…...

单端信号差分信号

单端信号和差分信号是电路中常见的两种信号传输方式&#xff0c;它们在具体的应用场景和特点上有着明显的区别。下面就来详细说明一下单端信号和差分信号的区别。 首先&#xff0c;单端信号是指信号通过一个信号线传输&#xff0c;通常一个信号线携带一个信号。这种传输方式适…...

数据设计(范式、步骤)

文章目录 数据设计1.数据库设计的三大范式2、数据库设计的具体步骤 数据设计 1.数据库设计的三大范式 关系型数据库的三大范式&#xff0c;指导如何设计一个关系型数据库。 1NF&#xff1a; 关系表的每个字段&#xff0c;都应该是不可再分的&#xff0c;——保证原子性。 字…...

Linux 中查看文件大小方法

目录 方法一&#xff1a;ls -l 输出的第五列方法二&#xff1a;du 命令的输出信息方法三&#xff1a;stat -c %s 的输出 方法一&#xff1a;ls -l 输出的第五列 ls 是列出指定目录下文件列表的命令&#xff0c;通过 -l 选项可以显示文件的属性信息&#xff0c;第五列显示的就是…...

SEO(搜索引擎优化)详解

SEO&#xff08;搜索引擎优化&#xff09;详解 SEO是Search Engine Optimization的缩写&#xff0c;中文称为"搜索引擎优化"。它是指通过一系列技术和方法&#xff0c;提高网站在搜索引擎自然&#xff08;非付费&#xff09;搜索结果中的排名&#xff0c;从而获得更…...

软考-高项,知识点一览十二 质量管理

十二 质量管理 项目质量管理包括把组织的质量政策应用于规划、管理、控制项目和产品质量要求&#xff0c;以满足干系人目标的各个过程。 项目质量管理需要兼顾项目管理与项目可交付成果两个方面&#xff0c;它适用于所有项目&#xff0c;无论项目的可付成果具有何种特性。 管…...

Docker 设置国内镜像源

Windows 和 macOS 用户 1、一般使用Docker Desktop软件&#xff0c;在 Docker Desktop 的图形界面中完成镜像源的更换操作。具体步骤如下&#xff1a; 打开 Docker Desktop 后&#xff0c;在菜单栏依次点击 Settings -> Docker Engine。此时会弹出一个 JSON 编辑框&#xf…...

探秘Transformer系列之(19)----FlashAttention V2 及升级版本

探秘Transformer系列之&#xff08;19&#xff09;----FlashAttention V2 及升级版本 文章目录 探秘Transformer系列之&#xff08;19&#xff09;----FlashAttention V2 及升级版本0x00 概述0x01 FlashAttention V21.1 动机1.2 方案1.2.1 减少冗余计算1.2.2 增加并行1.2.3 调整…...

《白帽子讲 Web 安全》之跨站请求伪造

引言 在数字化时代&#xff0c;网络已深度融入人们生活的方方面面&#xff0c;Web 应用如雨后春笋般蓬勃发展&#xff0c;为人们提供着便捷高效的服务。然而&#xff0c;繁荣的背后却潜藏着诸多安全隐患&#xff0c;跨站请求伪造&#xff08;CSRF&#xff09;便是其中极为隐蔽…...

C++20:make_shared_for_overwrite与make_unique_for_overwrite

文章目录 一、背景与动机二、std::make_shared_for_overwrite2.1 语法与用法2.2 优势 三、std::make_unique_for_overwrite3.1 语法与用法3.2 优势 四、应用场景4.1 高性能计算4.2 大型对象管理4.3 实时系统 五、总结 C20 引入了两个新的标准库函数&#xff1a; std::make_sha…...

北斗导航 | 改进奇偶矢量法的接收机自主完好性监测算法原理,公式,应用,RAIM算法研究综述,matlab代码

改进奇偶矢量法的接收机自主完好性监测算法研究 摘要 接收机自主完好性监测(RAIM)是保障全球导航卫星系统(GNSS)安全性的核心技术。针对传统奇偶矢量法在噪声敏感性、多故障隔离能力上的缺陷,本文提出一种基于加权奇偶空间与动态阈值的改进算法。通过引入观测值权重矩阵重…...

【React】基础版React + Redux实现教程,自定义redux库,Redux Toolkit教程

本项目是一个在react中&#xff0c;使用 redux 管理状态的基础版实现教程&#xff0c;用简单的案例练习redux的使用&#xff0c;旨在帮助学习 redux 的状态管理机制&#xff0c;包括 store、action、reducer、dispatch 等核心概念。 项目地址&#xff1a;https://github.com/Yv…...

onlyoffice实现office文件在线编辑保存

一、简介 onlyoffice是开源的在线文档编辑软件,支持主流的office格式,可实现文档在线编辑保存,多人协作编辑等场景,是目前我用过的功能最完善且强大的在线office编辑软件; 二、安装onlyoffice 这里仅介绍docker安装 简单运行查看sudo docker run -i -t -d -p 80:80 --…...

Transformer革命:人工智能如何突破语言理解的边界

Transformer革命&#xff1a;人工智能如何突破语言理解的边界&#xff1f; 当你在手机输入法中打出"苹果"时&#xff0c;系统是否知道你要输入水果还是手机品牌&#xff1f;这个看似简单的选择&#xff0c;背后隐藏着自然语言处理领域二十年来最深刻的变革。2017年谷…...

禅道品牌全面战略升级:开创项目管理国产化替代新格局

2025年&#xff0c;禅道软件完成企业品牌战略深度升级。此次升级&#xff0c;从产品力、服务力到生态圈构建等方面进行了全面优化&#xff0c;以更智慧的解决方案、更开放的生态布局&#xff0c;更安全的国产化解决方案&#xff0c;助力企业实现从“工具应用”到“价值创造”的…...

软件项目管理课程之第4讲:软件需求管理

讲授内容 项目案例 软件需求管理的基本概念 软件需求开发 软件需求管理 项目案例 案例背景&#xff1a;小王作为软件项目负责人&#xff0c;带领团队开展需求调查工作&#xff0c;但在需求分析和后续开发过程中出现了一系列问题。 问题表现&#xff1a; 项目规模庞大&…...

java基础知识和语法

1.类的信息加载完成后&#xff0c;会自动调用静态代码块&#xff0c;可以完成静态属性的初始化功能 对象准备创建时&#xff0c;也会自动调用代码块&#xff0c;但不是静态的&#xff1b; public class java_3_24 {public static void main(String[] args) {new User08();}} …...

横扫SQL面试——事件流处理(峰值统计)问题

横扫SQL面试 &#x1f4cc; 事件流处理&#xff08;峰值统计&#xff09;问题 “会议室预定冲突怎么查&#xff1f; &#x1f50d; 服务器瞬时负载如何算&#xff1f;&#x1f3a2; 健身房的‘人挤人’高峰究竟出现在几点&#xff1f;&#x1f3c3;‍♂️” 这些看似毫不相干…...

如何降低频谱分析仪的底噪

测量微小信号的时候&#xff0c;底噪可能会淹没有用的信号&#xff1a;&#xff08;如下图&#xff0c;底噪为-60dB&#xff09; 如何降低底噪&#xff1a; 1.分辨率带宽RBW设置小一点&#xff0c;可以减小信号的底噪 2.减小衰减器&#xff08;频谱分析仪底噪的功率随着输入衰…...