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

网络空间安全(44)Web实战篇

一、Web应用程序安全防护

  1. 输入验证

    • 严格验证用户输入:对所有用户输入的数据进行合法性检查,防止恶意用户通过输入恶意数据攻击应用程序。验证应包括对表单数据、URL参数、Cookie等进行检查,确保输入的数据符合预期格式和范围。
    • 使用安全的编码和转义:对用户输入的数据进行适当的编码和转义,防止跨站脚本攻击(XSS)等攻击方式。
  2. 防止跨站脚本攻击(XSS)

    • 实施内容安全策略(CSP):通过设置HTTP头部来限制浏览器加载的内容来源,防止恶意脚本的注入和执行。
    • 使用安全的模板引擎:在Web开发中,使用安全的模板引擎来渲染页面,避免直接将用户输入插入到HTML中。
  3. 防止跨站请求伪造(CSRF)

    • 使用CSRF令牌:在表单提交时,生成一个唯一的CSRF令牌,并在服务器端验证该令牌的有效性,防止攻击者伪造请求。
    • 实施Referer头检查:虽然Referer头可以被伪造,但在某些情况下可以作为辅助手段来防止CSRF攻击。
  4. 防止SQL注入攻击

    • 使用参数化查询或预编译语句:避免直接将用户输入拼接到SQL查询语句中,使用参数化查询或预编译语句来构建SQL查询语句。
    • 最小化数据库权限:为数据库用户分配最小的必要权限,防止攻击者通过SQL注入攻击获得更高的权限。
  5. 安全配置Web服务器

    • 禁用不必要的模块和功能:根据实际需求,禁用Web服务器中不必要的模块和功能,减少攻击面。
    • 配置访问控制:设置IP白名单或黑名单,限制对Web服务器的访问。

二、渗透测试与漏洞挖掘

  1. 信息收集

    • 域名和子域名收集:使用工具如Whois、DNS查询等,收集目标网站的域名和子域名信息。
    • 端口扫描:使用工具如Nmap等,对目标网站的常用端口进行扫描,发现开放的服务和潜在的漏洞。
  2. 漏洞扫描

    • 使用自动化工具:如Burp Suite、OWASP ZAP等,对Web应用程序进行自动化漏洞扫描,发现潜在的安全漏洞。
    • 手动验证漏洞:对自动化工具发现的漏洞进行手动验证,确认漏洞的真实性和可利用性。
  3. 渗透测试

    • 模拟攻击:根据发现的漏洞,模拟攻击者的行为,尝试对Web应用程序进行渗透测试。
    • 记录攻击过程:详细记录攻击过程,包括攻击步骤、使用的工具和技术、攻击结果等,为后续的安全分析和修复提供依据。

三、漏洞修复与加固

  1. 修复已知漏洞

    • 及时更新软件和补丁:定期更新Web服务器、数据库、应用程序等软件,安装安全补丁,修复已知的安全漏洞。
    • 修复自定义代码中的漏洞:对自定义代码进行代码审查和安全测试,发现并修复其中的安全漏洞。
  2. 加固Web应用程序

    • 实施输入验证和编码:对所有用户输入的数据进行严格的验证和编码,防止恶意数据的注入和执行。
    • 使用安全的加密技术:对敏感数据进行加密存储和传输,防止数据泄露和篡改。
  3. 配置安全策略

    • 设置会话超时和锁定机制:为Web应用程序设置会话超时和锁定机制,防止未授权用户访问会话。
    • 实施多因素认证:对于重要操作,实施多因素认证,提高账户的安全性。

四、实战案例

SQL注入攻击与防御

案例一:用户登录绕过

        假设有一个用户登录页面,使用以下SQL查询来验证用户的身份:

SELECT * FROM users WHERE username = 'input_username' AND password = 'input_password';

       攻击者在用户名输入框中输入 ' OR '1'='1,密码框中随意输入。这样,SQL查询语句会变成:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = 'any_password';

        由于 '1'='1' 始终为真,这条语句会返回所有用户的信息,攻击者从而绕过身份验证。

案例二:数据泄露

       攻击者在应用程序的搜索框中输入恶意的SQL代码,如 '; DROP TABLE users; --。如果应用程序没有对用户输入进行适当的验证和过滤,这条语句会被数据库服务器执行,导致 users 表被删除,造成数据泄露。

SQL注入防御实战

1. 使用参数化查询或预编译语句

原理:通过将用户输入的数据作为参数传递给SQL查询语句,而不是直接拼接到查询语句中,从而避免恶意代码注入。数据库引擎会自动对输入数据进行转义,确保输入数据不会改变SQL语句的结构。

实现方法

①在PHP中使用PDO

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();

②在Java中使用PreparedStatement

String query = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement stmt = connection.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();

2. 严格验证和过滤用户输入

原理:对用户输入的数据进行严格的验证和过滤,确保数据的合法性和安全性。通过正则表达式、长度限制、特殊字符过滤等方法,防止恶意输入。

实现方法

①使用正则表达式验证输入格式

if (!preg_match("/^[a-zA-Z0-9]+$/", $username)) {die("Invalid username.");
}

②限制输入长度

if (strlen($username) < 3 || strlen($username) > 20) {die("Username length must be between 3 and 20 characters.");
}

③转义或过滤特殊字符

$username = mysqli_real_escape_string($conn, $username);

3. 使用存储过程

原理:存储过程是预先在数据库中定义的SQL语句集合,避免了应用程序直接构造和执行动态SQL查询。通过将SQL逻辑封装在数据库内,减少了外部输入对SQL查询的影响。

实现方法

①在数据库中创建存储过程

CREATE PROCEDURE GetUser(IN username VARCHAR(50), IN password VARCHAR(50))
BEGINSELECT * FROM users WHERE username = username AND password = password;
END;

②在应用程序中调用存储过程

$stmt = $pdo->prepare("CALL GetUser(:username, :password)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();

4. 限制数据库账户权限

原理:为数据库用户分配仅满足操作需求的最小权限,避免使用具有过多权限的账户连接数据库。这样即使发生了SQL注入攻击,攻击者也只能在有限的权限范围内进行操作。

实现方法

①创建具有最低权限的数据库用户

CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE ON database_name.* TO 'app_user'@'localhost';

②在应用程序中使用该用户连接数据库

$pdo = new PDO('mysql:host=localhost;dbname=database_name', 'app_user', 'password');

5. 适当的错误处理

原理:避免将详细的数据库错误信息暴露给用户,以防止攻击者从错误信息中获取到关于数据库结构和其他敏感信息。

实现方法

①关闭详细的错误输出

ini_set('display_errors', 0);

②记录错误信息到日志:

error_log("SQL error: " . $e->getMessage(), 3, "/path/to/error_log.txt");

③返回通用的错误信息

die("An error occurred. Please try again later.");

6. 使用Web应用防火墙(WAF)

原理:WAF能够拦截和过滤恶意SQL注入请求,作为防止SQL注入的补充安全措施。WAF可以实时检测HTTP请求中的恶意模式,阻止潜在的攻击。

实现方法

①部署WAF设备或服务:选择可靠的WAF产品,根据应用程序的需求进行配置。

②监控WAF日志:定期检查WAF日志,分析潜在的攻击行为,及时调整防护策略。

7. 定期更新和维护

原理:定期更新系统、数据库和应用程序的安全补丁,修复已知漏洞。通过渗透测试和代码审查等手段,定期对应用程序进行安全性检查,发现并修复可能存在的SQL注入漏洞。

实现方法

①订阅安全更新通知:关注操作系统、数据库和应用程序的安全更新通知,及时安装补丁。

②定期进行渗透测试:聘请专业的安全机构对应用程序进行渗透测试,发现潜在的安全漏洞。

③代码审查:建立代码审查机制,对开发人员的代码进行定期审查,确保符合安全规范。

XSS攻击与防御

案例一:反射型XSS攻击

       假设一个网站有一个搜索框,用户输入的内容会立即显示在搜索结果页面上。攻击者在搜索框中输入 <script>alert('XSS');</script>,当其他用户访问包含此搜索结果的页面时,浏览器会执行 alert('XSS');,弹出警告框,表明XSS攻击成功。

案例二:存储型XSS攻击

       在一个允许用户发表评论的网站上,攻击者提交包含恶意脚本的评论,如 <img src="x" onerror="alert('XSS')">。当该评论被保存并显示在页面上时,其他用户浏览该页面时,浏览器会执行 alert('XSS');,触发XSS攻击。

案例三:DOM型XSS攻击

   攻击者构造一个特殊的URL,如 https://example.com/page?param=<script>alert('XSS')</script>。当用户点击该链接时,页面通过JavaScript动态地将参数值插入到DOM中,导致恶意脚本执行。

三、XSS防御实战

1. 输入验证与过滤

①严格验证用户输入:对所有用户输入的数据进行严格的验证和过滤,拒绝或清理任何不合法的输入。

②使用白名单策略:只允许符合预期格式的输入,例如限制只能输入数字、字母或特定符号。

③正则表达式过滤:使用正则表达式识别和过滤潜在的恶意内容。

2. 输出编码

①HTML实体编码:在将用户输入的数据输出到HTML页面时,进行HTML实体编码,将特殊字符(如 <>&")转换为HTML实体(如 &lt;&gt;&amp;&quot;),以防止浏览器将其解析为可执行脚本。

②使用安全的编码库:如PHP中的 htmlspecialchars() 函数、JavaScript中的 DOMPurify 库等。

3. 设置内容安全策略(CSP)

①限制脚本来源:通过设置CSP头部,指定允许加载资源的来源,限制脚本只能从可信源执行。

②禁止内联脚本:阻止 <script> 标签中的直接代码执行,减少攻击面。

③配置示例

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com;

4. 使用安全的JavaScript API

①避免使用 innerHTML:在操作DOM时,避免使用 innerHTML 和 document.write,因为它们会直接插入HTML内容,容易执行恶意脚本。

②优先使用 textContent 和 createElement:这些方法只操作文本或生成安全的DOM节点,不会执行恶意脚本。

5. 设置安全的Cookie属性

①HttpOnly:将Cookie设置为HttpOnly,使其不可通过JavaScript访问,减少通过XSS窃取Cookie的风险。

②Secure:确保Cookie仅通过HTTPS传输,防止被窃听。

6. 使用Web应用防火墙(WAF)

①检测和阻止XSS攻击:WAF可以检测和阻止恶意的XSS尝试,通过过滤恶意输入数据和拦截恶意脚本来保护Web应用程序。

②定期更新规则库:确保WAF的规则库得到及时更新,以识别新型XSS攻击。

7. 定期安全测试与代码审查

①使用自动化工具检测漏洞:如OWASP ZAP、Burp Suite等,定期检测XSS和其他常见的Web漏洞。

②代码审查:建立严格的代码审查机制,确保所有提交的代码都符合安全规范。

8. 开发者培训与安全意识提升

①安全编码培训:对开发人员进行安全编码的培训,提高他们对XSS攻击的认识和防范能力。

②安全意识提升:教育用户不要点击来源不明的链接或输入敏感信息,提高用户的安全意识。

文件上传漏洞与防御

案例一:未过滤文件类型导致的漏洞

       某网站允许用户上传头像图片,但服务器没有对上传的文件类型进行验证。攻击者构造了一个包含WebShell的PHP文件,并将其伪装成图片文件(如通过修改文件扩展名为.jpg)进行上传。由于服务器未对文件类型进行验证,成功上传了恶意文件。攻击者随后通过访问该文件,获得了服务器的执行权限。

案例二:文件解析漏洞导致的漏洞

       某网站使用Nginx作为Web服务器,存在Nginx解析漏洞。攻击者构造了一个包含恶意PHP代码的图片文件(如.jpg文件),并将其上传到服务器。由于Nginx解析漏洞的存在,服务器错误地将该文件解析为PHP脚本并执行,导致服务器被攻陷。

文件上传漏洞的防御措施
  1. 严格验证文件类型

    • 白名单机制:只允许上传特定类型的文件,如图片、文档等。在服务器端对上传文件的MIME类型、文件扩展名等进行严格检查,确保文件类型符合预期。
    • 双重验证:结合使用MIME类型和文件扩展名进行验证,防止攻击者通过伪造MIME类型绕过验证。
  2. 限制文件大小和内容

    • 设置合理的文件大小限制:根据实际需求设置上传文件的最大大小,防止攻击者上传过大的恶意文件。
    • 内容检测:对上传的文件内容进行检测,确保文件内容符合预期格式(如图片文件的内容应为图像数据)。
  3. 设置安全的文件存储路径和权限

    • 不可执行目录:将上传目录设置为不可执行,确保即使攻击者上传了恶意文件,也无法在服务器上执行。
    • 随机命名文件:对上传的文件使用随机生成的文件名进行重命名,防止攻击者通过猜测文件路径访问恶意文件。
    • 限制访问权限:确保只有授权用户才能访问上传目录和文件,防止未授权用户访问恶意文件。
  4. 使用安全的文件上传组件和库

    • 选择可靠的组件和库:使用经过安全验证的文件上传组件和库,避免使用存在已知漏洞的组件。
    • 及时更新组件和库:定期更新文件上传组件和库,以修复可能存在的安全漏洞。
  5. 部署Web应用防火墙(WAF)

    • 检测和阻止恶意文件上传:WAF可以检测和阻止恶意的文件上传行为,通过过滤恶意文件类型和内容来保护Web应用的安全。
    • 实时监控和日志记录:WAF可以实时监控文件上传行为,并记录相关日志,为安全分析和审计提供有力支持。
  6. 加强安全意识和培训

    • 提高开发者的安全意识:对开发者进行安全编码培训,提高他们对文件上传漏洞的认识和防范能力。
    • 定期安全审计和漏洞扫描:定期对Web应用进行安全审计和漏洞扫描,及时发现和修复潜在的安全漏洞。
实战防御建议
  1. 在开发阶段加强安全设计

    • 在设计文件上传功能时,充分考虑安全性,采用安全的文件上传方案。
    • 对上传的文件进行严格的验证和过滤,确保文件类型、大小和内容符合预期。
  2. 在部署阶段进行安全配置

    • 对Web服务器和应用程序进行安全配置,确保上传目录的权限设置合理。
    • 部署WAF等安全设备,提高Web应用的安全防护能力。
  3. 在运维阶段加强安全监控和响应

    • 定期对Web应用进行安全审计和漏洞扫描,及时发现和修复潜在的安全漏洞。
    • 建立快速响应机制,对安全事件进行及时响应和处理,减少损失和影响。

 结语     

每一天都是新的开始

每一刻都是自我超越的机会  

!!!

相关文章:

网络空间安全(44)Web实战篇

一、Web应用程序安全防护 输入验证 严格验证用户输入&#xff1a;对所有用户输入的数据进行合法性检查&#xff0c;防止恶意用户通过输入恶意数据攻击应用程序。验证应包括对表单数据、URL参数、Cookie等进行检查&#xff0c;确保输入的数据符合预期格式和范围。使用安全的编码…...

python列表常用方法大全

列表&#xff08;List&#xff09;是 Python 中最常用的数据结构之一&#xff0c;它是一个有序、可变的集合&#xff0c;可以存储任意类型的元素。以下是列表的定义及常见用法&#xff0c;包括拼接、增加数据、插入数据、删除数据、计算差值、相加、清空等操作&#xff0c;与字…...

Warm-Flow过去、现在和未来都不会有商业版

Warm-Flow过去、现在和未来都不会有商业版 Warm-Flow从24年2月加入Dromara开源社区&#xff0c;也正是由于加入他&#xff0c;Warm-Flow才等到更多人的关注和帮助。 同时吸引了不少贡献者&#xff0c;有的也成为了Warm-Flow的成员。 因此为了回馈大家&#xff0c;也是为了War…...

3. 实战(一):Spring AI Trae ,助力开发微信小程序

1、前言 前面介绍了Spring boot快速集成Spring AI实现简单的Chat聊天模式。今天立马来实战一番&#xff0c;通过Trae这个火爆全网的工具&#xff0c;来写一个微信小程序。照理说&#xff0c;我们只是极少量的编码应该就可以完成这项工作。开撸~ 2、需求描述 微信小程序实现一…...

3.23周赛补题

感觉还要多练&#xff0c;有的题思路不难&#xff0c;但是赛时就没思路。 A const int N110,M1e410; int dp[N][M]; void solve(){int n,m;cin>>n>>m;vector<int>a(n1);forr(i,1,n){cin>>a[i];}dp[0][0]1;//没钱 没菜 就是一种情况forr(i,1,n){refor…...

libpng-1.6.47-windows编译

本文操作按照《c&c开源库编译指南》中内容规范编写&#xff0c;编译环境配置、工具下载、目录规划&#xff0c;及更多其他开源库编译方法请参考该文章。 c&c开源库编译指南&#xff1a;https://blog.csdn.net/binary0006/article/details/144086155 本文章中的源代码已…...

RabbitMQ高级特性--重试特性

目录 1.重试配置 2.配置交换机&队列 3.发送消息 4.消费消息 5. 运行程序观察结果 6. 手动确认 注意&#xff1a; 在消息传递过程中, 可能会遇到各种问题, 如网络故障, 服务不可用, 资源不足等, 这些问题可能导致消息处理失败. 为了解决这些问题, RabbitMQ 提供了重试机制, …...

热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab - Sony S-Log3 Cinematic LUTs

热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab – Sony S-Log3 Cinematic LUTs 我们最好的 Film Look S-Log3 LUT 的集合&#xff0c;适用于索尼无反光镜相机。无论您是在户外、室内、风景还是旅行电影中拍摄&#xff0c;这些 LUT 都经过优化&#xff0c;可为…...

基础认证-单选题(一)

单选题 1、下列关于request方法和requestlnStream方法说法错误的是(C) A 都支持取消订阅响应事件 B 都支持订阅HTTP响应头事件 C 都支持HttpResponse返回值类型 D 都支持传入URL地址和相关配置项 2、如需修改Text组件文本的透明度可通过以下哪个属性方法进行修改 (C) A dec…...

C++ 变量类型

C 变量类型 在C编程语言中&#xff0c;变量是存储数据的基本单元。变量类型决定了变量的存储方式和所占内存大小。了解C中的变量类型对于编写高效、可维护的代码至关重要。本文将详细介绍C中的各种变量类型&#xff0c;包括基本类型、复合类型和用户定义类型。 基本类型 C提…...

智能粉尘监测解决方案|守护工业安全,杜绝爆炸隐患

在厂房轰鸣的生产线上&#xff0c;一粒微小粉尘的聚集可能成为一场灾难的导火索。如何实现粉尘浓度的精准监控与快速响应&#xff1f;我们为您打造了一套"感知-预警-处置"全闭环的智能安全方案&#xff01; 行业痛点&#xff1a;粉尘管理的生死线 在金属加工、化工…...

美观快速的react 的admin框架

系统特色&#xff1a; - &#x1f3a8; 精心设计的UI主题系统&#xff0c;提供优雅的配色方案和视觉体验 - &#x1f4e6; 丰富完整的组件库&#xff0c;包含大量开箱即用的高质量组件 - &#x1f528; 详尽的组件使用示例&#xff0c;降低开发者的学习成本 - &#x1f680…...

CentOS 7 挂载与卸载文件系统笔记

挂载文件系统 挂载的基本概念 挂载是将存储设备&#xff08;如硬盘分区、U 盘、光盘等&#xff09;连接到 Linux 文件系统的特定目录&#xff08;挂载点&#xff09;&#xff0c;使得系统能够访问存储设备上的数据。 查看已挂载的文件系统 命令&#xff1a;mount 或 df -h mo…...

UE5学习笔记 FPS游戏制作28 显式玩家子弹数

文章目录 添加变量修改ShootOnce方法&#xff0c;设计时减少子弹&#xff0c;没有子弹不能开枪在UI上显示 添加变量 在Gun类中添加BulletNum和ClipSize两个参数 BulletNum是当前还有多少子弹&#xff0c;ClipSize是一个弹匣多少子弹 Rifle的ClipSzie设置为30&#xff0c;Laun…...

VRRP交换机三层架构综合实验

题目要求&#xff1a; 1&#xff0c;内网Ip地址使用172.16.0.0/16分配 说明可以划分多个子网&#xff0c;图中有2个VLAN&#xff0c;可以根据VLAN划分 2&#xff0c;sw1和SW2之间互为备份 互为备份通常通过VRRP&#xff08;虚拟路由冗余协议&#xff09;来实现。VRRP会在两个…...

QSettings用法实战(相机配置文件的写入和读取)

很多情况&#xff0c;在做项目开发的时候&#xff0c;将参数独立出来是比较好的方法 例如&#xff1a;相机的曝光次数、曝光时长等参数&#xff0c;独立成ini文件&#xff0c;用户可以在外面修改即可生效&#xff0c;无需在动代码重新编译等工作 QSettings便可以实现该功能 内…...

洛谷题单1-P1001 A+B Problem-python-流程图重构

题目描述 输入两个整数 a,b&#xff0c;输出它们的和&#xff08;∣a∣,∣b∣≤109&#xff09;。 输入格式 两个以空格分开的整数。 输出格式 一个整数。 输入输出样例 输入 20 30输出 50方式-print class Solution:staticmethoddef oi_input():"""从…...

分布式系统

一、分布式系统概述 1.1 为什么需要分布式系统&#xff1f; 核心驱动力&#xff1a; ​性能需求&#xff1a;单机性能受物理限制&#xff08;CPU/内存/IO&#xff09;&#xff0c;分布式系统通过并行计算突破瓶颈​可扩展性&#xff1a;水平扩展&#xff08;增加节点&#x…...

前端开发学习路线完整指南

前端开发学习路线完整指南 前端开发是一个不断发展的领域&#xff0c;涉及多个技术栈。本文将为你提供一条系统的前端学习路线&#xff0c;帮助你从零基础到熟练掌握前端开发技能。 1. 前置知识 在学习前端之前&#xff0c;了解一些基础知识会对你的学习过程有很大帮助。 计…...

Sa-Token核心功能解剖二( Session会话、 持久层Redis扩展 、全局侦听器 、全局过滤器、多账号体系认证、单点登录)

文章目录 概要功能结构图5.Session会话6.持久层扩展7.全局侦听器8.全局过滤器9.多账号体系认证10.单点登录 概要 Sa-Token核心功能解剖&#xff08;二&#xff09;&#xff0c;主要有&#xff1a; Session会话 —— 全端共享Session,单端独享Session,自定义Session,方便的存取…...

C++搜索

功能扩展说明&#xff1a; 图类封装&#xff1a;将图数据结构封装为类&#xff0c;提高代码复用性 最短路径查找&#xff1a;基于BFS实现未加权图的最短路径查找 路径重构&#xff1a;通过parent数组回溯构建完整路径 异常处理&#xff1a;当路径不存在时返回空向量 复杂度分析…...

NC,GFS、ICON 数据气象信息可视化--降雨量的实现

随着气象数据的快速发展和应用&#xff0c;气象信息的可视化成为了一项不可或缺的技术手段。它不仅能帮助气象专家快速解读数据&#xff0c;还能为公众提供直观的天气预报信息。今天&#xff0c;我们将从降雨量的可视化出发&#xff0c;带大家一起了解如何实现气象数据的可视化…...

Android SystemUI深度定制实战:QSPanel下拉状态栏动态日期显示全解析

一、需求背景与实现思路 在Android系统定制化开发中&#xff0c;SystemUI的下拉状态栏&#xff08;Quick Settings Panel&#xff0c;QSPanel&#xff09;是用户高频交互的核心模块。近期某产品需求提出&#xff1a;在下拉展开状态栏时&#xff0c;需在QSPanel的顶部区域动态显…...

Linux 部署 rocketmq centos7

mq部署方案 1、rocketmq 顺序消费记录 一个master &#xff0c;一个 brocker &#xff0c;多个group &#xff0c;多个topic&#xff0c;采用集群消费模式。 注意 一个group 对应一个 topic。 生产者 和 消费者 可以有多个&#xff0c;但是 主题和分组 都是一对一的。这样保证…...

02_MySQL安装及配置

文章目录 一、下载二、安装及配置2.1、选择安装类型2.2、检查需要的依赖2.3、安装2.4、配置2.4.1、配置类型和网络2.4.2、配置账户和角色2.4.3、配置Windows服务2.4.4、让配置生效 2.5、验证是否安装成功 三、卸载3.1、运行MySQL安装工具3.2、卸载及清理3.3、卸载之后的检查工作…...

银行的压力测试如何进行?

为什么要进行压力风险测试&#xff1f; 压力风险测试的最终目的是测试银行在极度恶劣的市场环境中是否有足够的资本维持运转。 题主链接中的一级资本充足率(Tier 1 capital ratio) 亦即衡量标准&#xff0c;这个数字越大&#xff0c;表明银行资本约充裕&#xff0c;可以在停止…...

7、Linux C 进程通信

一、无名管道&#xff08;pipe&#xff09; 1. 函数介绍 #include <unistd.h> ​ int pipe(int pfd[2]); 参数&#xff1a;pfd是一个包含两个整数的数组&#xff0c;pfd[0]为读描述符&#xff0c;pfd[1]为写描述符。 返回值&#xff1a;成功时返回0&#xff0c;失败时…...

Android Framework 层 Hook 技术详解

目录 Hook 技术概述 什么是 Hook 技术? Hook 技术的核心原理 Hook 技术的进化与创新 Hook 技术的魅力与局限 Android Framework 层结构 Framework 层在 Android 中的位置 Framework 层的核心组件 为什么 Framework 层适合 Hook? 常用 Hook 方法 方法替换:换个 “芯…...

java接口中 使用@RequestParam和@RequestPart区别

1. 介绍 这两个注解都是spring注解。 RequestParam通常用于获取请求参数&#xff0c;这些参数可以是URL中的查询参数&#xff0c;也可以是表单数据中的字段。而RequestPart则是用于处理多部分&#xff08;multipart&#xff09;请求中的部分&#xff0c;特别是当上传文件或处理…...

CentOS-7.0系统基础操作

配置ip地址 编辑网卡文件&#xff1a; vi etc/sysconfig/network-scripts/ifcfg-ens33 在网卡文件里参照如下设置&#xff1a; BOOTPROTO"static" IPADDR192.168.61.233 GATEWAY192.168.61.2 NETMASK255.255.255.0 ONBOOT"yes" 防火墙管理 开启防火墙&am…...

全星研发管理APQP软件系统:驱动汽车产品研发全周期,打造高效合规的质量管理引擎

全星研发管理APQP软件系统&#xff1a;驱动汽车产品研发全周期&#xff0c;打造高效合规的质量管理引擎 在汽车、电子、医疗器械等高度依赖质量管理的行业中&#xff0c;APQP&#xff08;先期产品质量策划&#xff09;作为国际通用的产品开发管理框架&#xff0c;是确保产品从…...

Maven 的下载与安装

背景 为什么要建立本地Maven &#xff0c;idea 默认的maven 仓库是放在系统盘的&#xff0c;依赖每次都存在系统盘用就了C盘就爆炸了&#xff0c;所有我们可以在本地其他盘安装maven 建立仓库。 idea 默认的依赖拉取地址是maven 官网&#xff0c;我们建立本地仓库&#xff0c…...

26考研——排序_插入排序(8)

408答疑 文章目录 二、插入排序基本概念插入排序方法直接插入排序算法描述示例性能分析 折半插入排序改进点算法步骤性能分析 希尔排序相关概念示例分析希尔排序的效率效率分析空间复杂度时间复杂度 九、参考资料鲍鱼科技课件26王道考研书 二、插入排序 基本概念 定义&#x…...

Mem0 Prompt优化

在使用mem0的时候&#xff0c;系统中自带的提取事件的Prompt&#xff0c; 效果很差&#xff0c;我们可以按照我们的需求修改 from datetime import datetime, timedeltacustom_fact_extraction_prompt f"""你是一位个人信息整理专家&#xff0c;专注于准确存…...

C++ STL常用算法之常用算术生成算法

常用算术生成算法 学习目标: 掌握常用的算术生成算法 注意: 算术生成算法属于小型算法&#xff0c;使用时包含的头文件为 #include <numeric> 算法简介: accumulate // 计算容器元素累计总和 fill // 向容器中添加元素 accumulate 功能描述: 计算区间内容器元素…...

Kubernetes Webhook必要知识点:原理、配置与实践

#作者&#xff1a;邓伟 文章目录 1. 什么是 Kubernetes Webhook&#xff1f;2. Webhook 的工作原理2.1 准入控制器&#xff08;Admission Controller&#xff09;2.2 Webhook 类型 3. Webhook 的配置3.1 Webhook 配置文件3.2 配置字段说明 4. Webhook 的开发与部署4.1 开发 We…...

IGS 转 STL 全攻略:迪威模型在线转码助力 3D 建模

在 3D 建模与制造业领域&#xff0c;不同文件格式之间的转换是经常面临的重要任务。IGS 和 STL 作为其中两种常用格式&#xff0c;前者凭借出色的曲面表达能力&#xff0c;在 CAD 领域广泛应用&#xff1b;后者凭借简单的三角网格结构&#xff0c;成为 3D 打印、快速成型的行业…...

【Bug】记录2025年遇到的Bug以及修复方案

--------------------------------------------------------分割线 2025.3.25-------------------------------------------------------windows环境下通过命令行终端&#xff08;必须是命令行下&#xff0c;直接赋值传递&#xff0c;代码正常&#xff09;的形式传递字符串时&a…...

Unity UGUI - 六大基础组件

目录 一、Canvas上 1. Canvas&#xff1a;复制渲染子UI控件 2. ✨Canvas Scaler✨&#xff1a;画布分辨率自适应 3. Graphics Raycaster&#xff1a;射线事件响应 4. ✨Rect Transform✨&#xff1a;UI位置锚点对齐 二、Event System上 5. Event System 6. Standalone …...

TCP网络编程与多进程并发实践

一、引言 在网络编程中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。而多进程并发则是一种提高服务器处理能力的有效手段&#xff0c;允许服务器同时处理多个客户端的请求。本文将详细介绍如何使用 TCP 协议进…...

IM腾讯Trtc与vod云点播:实现合流录制并上传,根据参数返回视频地址

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 文档传送门 2. java基础使用2.1 准备工作2.1.1 云控制台获取(密钥和密钥secret)2.1.2 找到trtc控制台2.1.3 vod云点播控制台 2.2 使用准备的数据进行操作2.2.0 引入依赖2.2.1 创建TrtcUtils工具类2.2.2 TrtcReqDTO 录制请求dt…...

HTTP协议手写服务器

目录 一、请求的是Web根目录 二、GET方法通过URL传参 三、根据资源类型对应出Content-Type值 四、Http代码 项目完整源代码&#xff1a;Http 周不才/cpp_linux study - 码云 - 开源中国 一、请求的是Web根目录 如果URL中请求的资源是Web根目录&#xff0c;则自动跳转到主…...

Uni-app入门到精通:subPackages节点为小程序的分包加载配置

subPackages节点用于为小程序的分包加载配置。因小程序有体积和资源加载限制&#xff0c;各小程序平台提供了分包方式&#xff0c;以加快小程序的下载和启动速度。主包用于放置默认启动页面、babBar页面&#xff0c;以及一些所有分包都会用到的公共资源或JS脚本&#xff1b;而分…...

DeepSeek本地部署(linux)

一、下载并安装Ollama 1.下载Ollama Ollama官网:Ollama 点击"Download",会跳转至下载页面。 1.1在线下载安装 可复制此命令到Linux服务器进行在线下载,如下载速度过慢,可选择离线下载安装。 curl -fsSL https://ollama.com/install.sh | sh1.2离线下载安装 …...

工具——(常用的软件)视频编辑器

软件工具 1、视频编辑器&#xff1a;filmora 9 2、图标无损放大&#xff1a;oCam 或者 Adobe Illustrator CS6 3、图片编辑&#xff1a;Photoshop CS6 4、截图置顶工具&#xff1a;Snipaste 或者 PixPin 5、抢票&#xff1a;Bypass 6、文本日志工具&#xff1a;N…...

Kafka 多线程开发消费者实例

目前&#xff0c;计算机的硬件条件已经大大改善&#xff0c;即使是在普通的笔记本电脑上&#xff0c;多核都已经是标配了&#xff0c;更不用说专业的服务器了。如果跑在强劲服务器机器上的应用程序依然是单线程架构&#xff0c;那实在是有点暴殄天物了。不过&#xff0c;Kafka …...

org.apache.maven.surefire:surefire-junit-platform:jar:2.22.2 Maven打包失败

org.apache.maven.surefire:surefire-junit-platform:jar:2.22.2 解决办法 勾上这个&#xff0c;打包时跳过测试代码...

在Ubuntu中固定USB设备的串口号

获取设备信息 lsusb # 记录设备的Vendor ID和Product ID&#xff08;例如&#xff1a;ID 0403:6001&#xff09;# 获取详细属性&#xff08;替换X和Y为实际设备号&#xff09; udevadm info -a /dev/ttyUSBX 结果一般如下 创建udev规则文件 sudo gedit /etc/udev/rules.d/us…...

Java后端开发: 如何安装搭建Java开发环境《安装JDK》和 检测JDK版本

文章目录 一、JDK的安装1、 打开 Oracle 官方网址2、点击产品 二、检测JDK是否安装成功以及JDK版本的查看1. 打开命令行窗口检测是否安装成功查看 JDK 版本 一、JDK的安装 1、 打开 Oracle 官方网址 Oracle官网地址:https://www.oracle.com/cn/ 2、点击产品 打开下载的JDK文件…...

AudioFlinger与AudioPoliceManager初始化流程

AF/APF启动流程 在启动AudioSeriver服务的过程中会对启动AF/APF。main_audioserver.cpp有如下代码&#xff1a; AudioFlinger::instantiate();AudioPolicyService::instantiate();AF初始化流程 1.AudioFlinger::instantiate() 1.1 AudioFlinger构造函数 void AudioFlinger:…...