2025-2026-1 20231301 《信息安全设计》第九周学习总结

news/2025/9/30 21:59:25/文章来源:https://www.cnblogs.com/twilight0966/p/19121832

View Post

2025-2026-1 20231301 《信息安全设计》第九周学习总结

2025-2026-1 20231301 《信息安全设计》第九周学习总结

目录
  • 作业信息
  • 学习内容总结
    • 1. 进程的本质
    • 2. 系统调用层次结构
    • 3. 进程创建与执行完整流程
    • exec() 函数家族对比表
      • 实用示例:安全的命令执行
    • 安全编程实践
      • system() 的安全风险与防护
    • 思维导图

作业信息

作业 链接
作业课程 <班级>(2025-2026-1 信息安全设计)
作业要求 <作业>(2025-2026-1 信息安全设计 预习作业要求)
作业目标 《Windows C/C++ 加密解密实战》> 预习第九章
作业正文 <博客>(第九周学习总结)

学习内容总结

第九章:进程与系统调用

1. 进程的本质

进程是正在执行的程序实例,每个进程都有独立的:

  • 内存空间
  • 文件描述符表
  • 环境变量
  • 进程状态(运行、睡眠、停止等)

2. 系统调用层次结构

应用程序 → C标准库 → 系统调用接口 → 操作系统内核 → 硬件资源

3. 进程创建与执行完整流程

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <string.h>void demonstrate_fork_exec() {pid_t pid = fork();if (pid == -1) {perror("fork failed");exit(1);}else if (pid == 0) {// 子进程printf("Child process: PID = %d, Parent PID = %d\n", getpid(), getppid());// 执行 ls 命令execl("/bin/ls", "ls", "-l", "-a", NULL);// 如果 execl 成功,不会执行到这里perror("execl failed");exit(1);}else {// 父进程printf("Parent process: PID = %d, Child PID = %d\n", getpid(), pid);int status;waitpid(pid, &status, 0);  // 等待子进程结束if (WIFEXITED(status)) {printf("Child exited with status: %d\n", WEXITSTATUS(status));}}
}

exec() 函数家族对比表

函数名 参数类型 搜索PATH 环境变量
execl() 参数列表 继承
execle() 参数列表 自定义
execlp() 参数列表 继承
execv() 参数数组 继承
execvp() 参数数组 继承
execve() 参数数组 自定义

实用示例:安全的命令执行

#include <errno.h>int safe_system_call(const char* command) {pid_t pid = fork();if (pid == 0) {// 子进程 - 使用 shell 执行命令execl("/bin/sh", "sh", "-c", command, NULL);_exit(127); // 如果 exec 失败}else if (pid > 0) {// 父进程 - 等待子进程int status;while (waitpid(pid, &status, 0) == -1) {if (errno != EINTR) {return -1; // 等待失败}}return status;}else {return -1; // fork 失败}
}

安全编程实践

system() 的安全风险与防护

危险示例:

// UNSAFE! 容易受到命令注入攻击
char user_input[100];
scanf("%99s", user_input);
char command[200];
sprintf(command, "echo '%s' >> log.txt", user_input);
system(command);

安全改进:

// 安全的替代方案
void safe_log_entry(const char* entry) {FILE* log_file = fopen("log.txt", "a");if (log_file) {fprintf(log_file, "%s\n", entry);fclose(log_file);}
}// 或者使用 exec 系列函数
void safe_system_log(const char* entry) {pid_t pid = fork();if (pid == 0) {// 在子进程中直接调用 echoexecl("/bin/echo", "echo", entry, NULL);_exit(1);}wait(NULL);
}

思维导图

第9章:进程与系统调用
├── 进程基础
│   ├── 进程概念
│   ├── PID/PPID
│   └── 进程状态
├── 系统调用
│   ├── system()
│   ├── exec()家族
│   ├── fork()
│   └── wait()/waitpid()
├── 错误处理
│   ├── errno变量
│   ├── perror()
│   └── strerror()
└── 安全实践├── 命令注入防护└── 权限控制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机网站锁定竖屏看代码建设部网站水利设计资质

合作官宣 TopOn 正式成为亚太地区首家支持自动创建Admob bidding广告源的聚合平台。目前&#xff0c;在TopOn后台添加Admob广告平台&#xff0c;您只需要重新授权Google账号&#xff0c;即可开通自动创建功能。此前&#xff0c;TopOn 已在24年2月6日官方聚合支持Google biddin…

10. Spring AI + RAG - Rainbow

10. Spring AI + RAG @目录10. Spring AI + RAGRAG概念向量:文本向量化向量数据库匹配检索SearchRequest接入ChatClientRetrievalAugmentationAdvisor最后: RAG 检索增强生成(Retrieval-augmented Generation) 对…

《AI智能体实战研发教程(从0到企业级项目落地)》全网上线|CSDN B站同步首发

《AI智能体实战研发教程(从0到企业级项目落地)》全网上线|CSDN & B站同步首发pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

网站更改备案信息在哪好网站开发

Hive常用函数_20个字符串处理 以下是Hive中常用的字符串处理函数&#xff0c;可用于执行各种字符串处理转换操作。 1. CONCAT()&#xff1a;将多个字符串连接在一起。 SELECT CONCAT(Hello, World); -- Output: HelloWorld2. SUBSTR()&#xff1a;从字符串中提取子字符串&…

9. Spring AI 当中对应 MCP 的操作 - Rainbow

9. Spring AI 当中对应 MCP 的操作 @目录9. Spring AI 当中对应 MCP 的操作MCP问题:使用MCP STDIO 输出配置实操MCP Server现成共用MCP ServerMCP Client通过工具通过 Spring AI 接入 第三方的 MCP Server使用 Spring…

深入解析:JVM 内存结构

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

gudao网站建设闸北东莞网站建设

7-13 p070找出全部子串位置 分数 5 作者 吴敏华 单位 首都师范大学 输入两个串s1,s2&#xff0c;找出s2在s1中所有出现的位置。 前后两个子串的出现不能重叠。例如’aa’在 aaaa 里出现的位置只有0,2 输入格式: 第一行是整数n 接下来有n行&#xff0c;每行两个不带空格的字符…

深圳微信网站建设报价九游手游平台app

一、利用webapps文件夹自动部署这是最简单的方式&#xff0c;只要将网站直接拷贝到&#xff1a;tomcat根目录下的webapps文件夹里举例&#xff1a;helloworld文件夹下创建里index.html文件&#xff0c;然后把helloworld文件夹移动到tomcat根目录下webapps文件夹里&#xff0c;重…

9/30

今天上午上了一节工程实训的课,其中小车红外线测距系统用到了C语言,第一次真正的用到了所学知识,感觉不错,四节课很快过去了,明天就是国庆,开心

rhel8无法输入中文问题(红帽8安装中文输入法)

问题:明明在设置里添加了汉语拼音输入法缺无法输入中文解决方法: 通过yum安装中文输入法 [root@server01 ~]# dnf install ibus-libpinyin -y到设置里添加新安装的输入法发现还没有新安装的输入法,这时需要重启系统…

威佐夫博弈(Wythoff‘s Game)

威佐夫博弈(Wythoff‘s Game) 1. Beatty 定理 设 无理数 \(r\) 对应的 Beatty 数列 \(B_r\) 为 \((B_r)_i=\lfloor i\times r\rfloor\)。 定理:若无理数 \(r,s\) 满足 \(\frac 1 r+\frac 1 s=1\),则 \(B_r,B_s\) 为…

外贸网站收到询盘淘客网站建设视频

目录 一、modbus简介 二、功能码01、02 三、modbus解析 四、功能码03、04 五、功能码05 六、功能码06 七、功能码16 一、modbus简介 我们在网上查阅modbus的资料发现很多很杂&#xff0c;modbus-RTU ASCII TCP等等&#xff0c;还有跟PLC结合的&#xff0c;地址还分1开…

PWN手成长之路-05-ROP

与远程环境进行交互,可以进行输入,但是输入之后无任何回显。file 查看文件。64位 ELF 。checksec 查看文件安全属性。IDA 打开文件。查看 main 函数的反编译代码。查看 buf 这个字符数组(栈上的缓冲区),本身 buf …

随机采样研究随笔

\(y=x^n\) 在 O(n) 复杂度随机 \(y=(1-x)^a x^b\) 在 O(n) 复杂度随机 线性时间随机 \(n\) 个有序的 \([0,1]\) 实数。 线性时间随机 \(sum=0\) 的一个 1,-1 序列 \(O(n\sqrt n)\) 时间随机一个合法括号序列

Python 正则表达式实战:一文搞定文本处理

在 Python 中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、搜索、替换等操作。无论是数据清洗、文本解析还是复杂的文本处理任务,正则表达式都能轻松应对。今天,就让我们一起深入学习 Py…

2025-2026-1 20231301 《信息安全设计》第八周学习总结

View Post2025-2026-1 20231301 《信息安全设计》第八周学习总结2025-2026-1 20231301 《信息安全设计》第八周学习总结 目录作业信息学习内容总结一、TLS协议深度解析二、OpenSSL SSL/TLS编程实战三、OpenSSL命令行TL…

太月星网站建设程序开发一键生成微信小程序

你知道吗&#xff0c;C类是编程世界中的一种强大工具&#xff0c;它可以帮助我们更好地组织和管理代码。接下来&#xff0c;我将为你呈现一篇近万字的C类的教程&#xff0c;希望能帮助你熟悉这个概念。 首先&#xff0c;让我们从C类的定义开始。类是一个模板&#xff0c;它描述…

2025-2026-1 20231301 《信息安全设计》第七周学习总结

View Post2025-2026-1 20231301 《信息安全设计》第七周学习总结2025-2026-1 20231301 《信息安全设计》第七周学习总结 目录作业信息学习内容总结第十章:身份认证和PKI理论基础一、PKI体系架构深度解析二、证书处理实…

springboot+vue心理健康服务小程序(源码+文档+调试+基础修改+答疑) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

肉山谷英雄传说新手任务登录英文网站怎么做装修网站建设网

文章目录 前言UUID 处理的更改正则表达式的更改结束 前言 Android 14 已经出来好久好久了… 今天其他的暂且不论&#xff0c;单纯的讲一下 OpenJDK 17 更新的两点变更&#xff08;扒源代码&#xff09;~ 对正则表达式的更改UUID 处理 首先&#xff0c;正则表达式的更改&…