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

SELinux零知识学习十五、SELinux策略语言之客体类别和许可(9)

接前一篇文章:SELinux零知识学习十四、SELinux策略语言之客体类别和许可(8)

一、SELinux策略语言之客体类别和许可

4. 客体类别许可实例

(3)进程客体类别许可

与文件许可不同,许多进程许可没有直接对应到标准的Linux访问控制,因为传统的Linux没有将进程作为一个正式的客体对待。下表列出了进程客体类别许可:

许可描述
dyntransition允许进程动态地转移到新的上下文中
execheap产生一个堆栈可执行体
execmem产生一个匿名的映像或可写的私有文件映像可执行体
execstack产生进程堆栈可执行体
fork派生两个进程
getattr通过/proc/[pid]/attr目录获取进程的属性
getcap获得这个进程允许的Linux能力
getpgid获取进程的组进程ID
getsched获取进程的优先级
getsession获取进程的会话ID
noatsecure禁用清除安全模式环境,允许进程在execve(2)上禁用glibc的安全模式特性
ptrace跟踪程序执行的父进程或子进程
rlimitnh在execve(2)上继承进程资源限制
setcap为进程设置允许的Linux能力
setcurrent设置当前的进程上下文,当进程试图执行一个动态域转换时,这是第一个检查的能力
setexec下一次调用execve(2)时覆盖默认的上下文
setfscreate允许进程设置由其创建的客体的上下文
setpgid设置进程的组进程ID
setrlimit改变进程硬性资源限制
setsched设置进程的优先级
share允许与克隆的或派生的进程共享状态
siginh在execve(2)上继承信号状态
sigkill发送sigkill信号
sigchld发送sigchld信号
signal发送一个非sigkill、sigstop或sigchld的信号
signull不发送信号以测试另一个进程的存在性
sigstop发送sigstop信号
transition在execve(2)上转换到一个新的上下文

1)创建进程

  • fork

fork许可控制进程使用fork(2)系统调用的能力,这个系统调用创建一个进程的副本,只是进程标识符和资源利用数据有所不同,派生进程的安全上下文不能改变。通常,执行一个西程序的第一步就是派生,控制进程派生的能力,限制它使用系统资源的能力,可以潜在地预防某些类型的拒绝服务攻击。

  • share、siginh、rlimitnh

三个其它的许可在进程转换时控制状态的共享。share许可控制进程状态的共享,如在一个execve(2)系统调用上的文件描述符和内存地址空间。siginh许可控制信号状态的继承,包括任意挂起的信号。最后,rlimitnh许可控制从父进程那里继承的资源限制

2)进程域类型转换

  • transition、setexec、getattr

transition许可控制进程通过execve(2)系统调用从一个域转到另一个域的能力。如果允许,域转换或明确地请求时可能会自动产生一个type_transition规则,请求明确的域转换的能力是由setexec许可控制的,这个请求会向proc文件系统中写一个特定的文件,此过程在setexeccon(3)库函数中被抽象出来。为下一个请求execve(2)系统调用查看当前请求的转换的能力是由getattr许可控制的

  • noatsecure

noatsecure许可使内核在进行域转换时不设置glibc的安全模式,在安全模式下,glibc清除进程环境,包括相当多的环境变量,如LD_PRELOAD。如果不清除环境,源域可能会控制目标域的关键部分,当域转换进入更高特权域时,允许noatsecure许可是特别危险的。

  • dyntransition

dyntransition许可与transition许可类似,但它是控制进程在任何时间改变域类型的能力,不仅仅是执行程序那一刻。这个许可比transition许可更危险,因为它允许起始域在新域中执行任意的代码,由于这个原因,dyntransition许可只有在目标域是起始域的一个受限的子集时可以安全地使用,否则,想要理解域改变的保护就会失败,所有授予目标域的访问权对起始域都必须能够可访问。

警告:随意使用dyntransition许可改变进程域类型会破坏标记的性质,在SELinux中,标记意味着在一个运行的系统中,创建一个客体后,它的类型将会被改变。尽管存在受信任的操作系统组件偶然改变了客体类型的可能,SELinux还是会严格控制进程的类型改变。dyntransition许可的引入打破了这种固有属性,使得所有的策略安全分析都变得即为复杂,我们强烈建议你永远都不要使用这个许可,除非你在编写用户空间客体管理器或其它SELinux扩展。

  • setcurrent

dyntransition许可的setcurrent许可与transition许可的setexec许可类似,它控制请求改变进程域类型的能力,成功改变域类型需要dyntransition许可,另外还要setcurrent许可。和setexec类似,请求被写入到proc文件系统的一个特殊文件中,这个过程抽象在setcon(3)中。

3)创建文件

  • setfscreatecon

与域转换类似,与文件有关的客体的安全上下文设置可以通过继承或type_transition规则进行自动创建,也可以明确地创建。通过在proc文件系统中写入一个特定的文件实现与文件有关的客体的安全上下文设置,这个过程抽象在setfscreatecon(3)库调用中,setfscreatecon许可控制产生这个明确请求的能力。与setexeccon类似,查看文件系统客体上下文请求的当前状态是由getattr许可控制的。

4)进程信号

  • sigchld、sigkill、sigstop、signull和signal

向进程发送信号的权力非常大,因为它可能允许结束或停止进程。此外,信号可用于在进程间传输信息,sigchld、sigkill和sigstop许可分别控制发送SIGCHILD、SIGKILL和SIGSTOP信号的能力signull许可控制发送空信号的能力,例如:通过传递一个0字符作为一个信号参数给kill(2)系统调用。最后,signal许可控制发送其它信号的能力

为什么有的信号有明确的许可定义,而其它的都在常见的signal许可控制之下呢?有两个原因:SIGKILL和SIGSTOP这两个信号有明确的许可,因为它们不能由进程阻碍。SIGCHLD信号有其自己的许可主要是因为它是被正式使用的(如它经常是每个进程init时使用)。剩下的安全属性都相同,因此它们都由signal许可控制。

5)进程属性

  • getsched和setsched

查询或设置调度优先级以及进程策略的能力是由getsched和setsched许可控制的。设置调度优先级和策略,特别是SCHED_FIFO策略,使用sched_setscheduler(2)系统调用可以允许进程不受限制占用CPU时间,因此,它可以用于拒绝服务攻击。

  • getpgid、setpgid和getsession

进程组和会话标识符控制大部分进程的交互,包括终端处理和信号传递,getpgid和setpgid许可控制查询和设置进程组标识符getsession许可控制进程标识符的查询

  • getcap和setcap

getcap和setcap许可控制查询和设置进程的Linux许可,要成功设置一个许可,这个许可也必须被标记了域类型的capability客体类别接受。

  • setrlimit

资源限制,如核心转储的最大大小或CPU时间的最大大小,都是使用setrlimit(2)系统调用,setrlimit许可控制设置硬件资源限制的能力。

6)执行可写入内存

  • execmem、execstack、execheap

正如在file客体类别的execmod许可中讨论的那样(参见SELinux零知识学习十四、SELinux策略语言之客体类别和许可(8)),执行可写入内存段的能力是许多安全事件的起源,为了帮助标记出这些事件,首先创建execmem、execstack和execheap许可,它们分别控制可执行的匿名映像、堆栈和堆的创建,许可的执行依赖于另外的软件特性(如ExecShied)和硬件特性(如NX)。

注:

  • ExecShied是Red Hat开发的内核补丁,控制内存执行,并添加了其它安全特性。它被包含在所有的Fedora Core和自Red Hat Enterprise Linux 3以来的版本中。
  • NX是一个硬件设置,它实现了许多ExecShied相同的目标。

相关文章:

SELinux零知识学习十五、SELinux策略语言之客体类别和许可(9)

接前一篇文章:SELinux零知识学习十四、SELinux策略语言之客体类别和许可(8) 一、SELinux策略语言之客体类别和许可 4. 客体类别许可实例 (3)进程客体类别许可 与文件许可不同,许多进程许可没有直接对应到…...

OpenSign:安全可靠的电子签名解决方案 | 开源日报 No.76

microsoft/Web-Dev-For-Beginners Stars: 71.5k License: MIT 这个开源项目是一个为期 12 周的全面课程,由微软云倡导者团队提供。它旨在帮助初学者掌握 JavaScript、CSS 和 HTML 的基础知识。每一节都包括预习和复习测验、详细的书面指南、解决方案、作业等内容。…...

Linux | 进程间通信

目录 前言 一、进程间通信的基本概念 二、管道 1、管道的基本概念 2、匿名管道 (1)原理 (2)测试代码 (3)读写控制相关问题 a、读端关闭 b、写端关闭 c、读快写慢 d、读慢些快 (4&a…...

Vue.js正式环境中配置多个请求的URL

在Vue.js中,你可以在正式环境中配置多个请求的URL,通常使用一些配置文件或者环境变量的方式。下面是一种常见的配置方式: 1. 创建配置文件:在项目的根目录下,创建一个配置文件,比如可以是config.js&#x…...

简单的 UDP 网络程序

文章目录: 简单的UDP网络程序服务端创建套接字服务端绑定启动服务器udp客户端本地测试INADDR_ANY 地址转换函数关于 inet_ntoa 简单的UDP网络程序 服务端创建套接字 我们将服务端封装为一个类,当定义一个服务器对象之后,需要立即进行初始化…...

人工智能-深度学习之文本预处理

文本预处理 对于序列数据处理问题, 这样的数据存在许多种形式,文本是最常见例子之一。 例如,一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。 本节中,我们将解析文本的常见预处理步骤。 这些步骤通常包括…...

【Java 进阶篇】插上翅膀:JQuery 插件机制详解

在前端开发中,JQuery 作为一个广泛应用的 JavaScript 库,为开发者提供了丰富的工具和方法,简化了 DOM 操作、事件处理等繁琐的任务。而在这个庞大的生态系统中,插件机制是 JQuery 的一项重要特性,使得开发者能够轻松地…...

手动编译GDB

手动编译GDB 起因在于使用Clang-14编译C文件并生成调试信息,使用gdb调试时报DWARF相关错误。经检查原因在于虚拟机为Ubuntu 20.04,使用apt下载时官方提供gdb版本为9.2,不支持DWARF5,而Clang-14生成的调试信息是DWARF5版本的。为解决该问题,手…...

竞赛选题 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &a…...

替换SlowFast中Detectron2为Yolov8

一 需求 FaceBookReserch中SlowFast源码中检测框是用Detectron2进行目标检测,本文想实现用yolov8替换detectron2二 实施方案 首先,yolov8 支持有自定义库ultralytics(仅支持yolov8),安装对应库 pip install ultraly…...

轻量化网络--MobileNet V1

文章目录 depth-wise separable convolutions普通卷积depthwise conconvolutionspointwise convolutions网络结构进一步分析网络训练方式两个重要的超参数Width Multiplier: Thinner ModelsResolution Multiplier: Reduced Representation实验结果消融实验细粒度,高分辨率识别…...

gittee启动器

前言 很多小伙伴反馈不是使用gitee,不会寻找好的项目,在拿到一个项目不知道从哪里入手。 鼠鼠我呀就是宠粉,中嘞,老乡。整!!! git的基本指令 在使用gitee的时候呢,我们只需要记住…...

Spark数据倾斜_产生原因及定位处理办法_生产环境

在最近的项目中,历史和实时数据进行关联平滑时出现了数据倾斜,产生了笛卡尔积,具体现象如下:运行内存175GB,核数64,运行代码时,查看SparkUI界面的active jobs ,数据输入是1G&#xf…...

2023OceanBase年度发布会后,有感

很荣幸收到了OceanBase邀请,于本周四(11月16日)参加了OceanBase年度发布会并参加了DBA老友会,按照理论应该我昨天(星期五)就回到成都了,最迟今天白天就该把文章写出来了,奈何媳妇儿买…...

ubuntu18.04中代码迁移到20.04报错

一、 PCL库,Eigen库报错,如: /usr/include/pcl-1.10/pcl/point_types.h:903:29: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’?/usr/include/pcl-1.10/pcl/point_types.h:698:…...

QQ五毛项目记

问题与挑战:某公司为了实现某马总造福全人类,红旗插遍全球的宏伟目标,为应对后续用户激增的问题。特别安排了一次针对全体用户的秒杀活动:于XXXX年XX月XX日XX时XX分XX秒开始的秒杀五毛钱一百个QQ币的活动。每个账户仅限一次&#…...

小程序实现登录持久化

小程序实现登录持久化需要使用到小程序的缓存API,例如wx.getStorageSync()和wx.setStorageSync()等方法。以下是一个简单的代码实现: // App.js App({ // 在全局的App.js中定义全局变量userInfo,用于存放用户信息 globalData: { userInfo: …...

2023年亚太杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…...

C复习-输入输出函数+流

参考: 里科《C和指针》 perror 定义在stdio.h中。当一个库函数失败时,库函数会在一个外部整型变量errno(在errno.h中定义)中保存错误代码,然后传递给用户程序,此时使用perror,会在打印msg后再打…...

duplicate复制数据库单个数据文件复制失败报错rman-03009 ora-03113

duplicate复制数据库单个数据文件复制失败报错rman-03009 ora-03113 搭建dg过程中,发现有一个数据文件在复制过程中没有复制过来,在备库数据文件目录找不到这个数据文件 处理方法: 第一步:主库备份86#数据文件 C:\Users\Admi…...

golang 解析oracle 数据文件头

package mainimport ("encoding/binary""fmt""io""os" ) // Powered by 黄林杰 15658655447 // Usered for parser oracle datafile header block 1 .... // oracle 数据文件头块解析 // KCBlockStruct represents the structure of t…...

van-popup滑动卡顿并且在有时候在ios上经常性滑动卡顿的情况

解决”pc端页面可以滚动&#xff0c;移动端手势无法滚动“问题的一次经历 - 掘金 <van-popup v-model"studentclassShow" :lock-scroll"false" position"bottom" style"z-index: 3000" :style"{ height: 55% }"><d…...

YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv7独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…...

ubuntu20.04中编译zlib1.2.11(源码编译)

1. 安装cmake-gui 2. 下载并解压zlib-1.2.11&#xff0c;在解压得到的文件夹内部创建一个“build”文件夹。 3. 打开cmake-gui&#xff0c;配置zlib1.2.11的configure文件&#xff08;主要编辑build路径&#xff0c;安装路径&#xff0c;以及其他依赖选项&#xff09;&#x…...

计算机毕业设计选题推荐-高校后勤报修微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

如何零基础自学AI人工智能

随着人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;越来越多的有志之士被其强大的潜力所吸引&#xff0c;希望投身其中。然而&#xff0c;对于许多零基础的人来说&#xff0c;如何入门AI成了一个难题。本文将为你提供一份详尽的自学AI人工智能的攻略&#xff0c;帮…...

pm2使用

常用命令 pm2 delete/stop/restart/start/list/info/monit/log...

在Ubuntu或linux中为coreutils工具包的cp和mv命令添加进度条

1、查看当前最新的coreutils版本&#xff1a; http://ftp.gnu.org/gnu/coreutils/ 2、安装coreutils过程 # wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz # tar -xJf coreutils-9.4.tar.xz # cd coreutils-9.4/ 对照上面的&#xff0c;下载对应coreutils版本…...

力扣-58. 最后一个单词的长度

int lengthOfLastWord(char* s) {char* temp s;char* ret s;int count 0;/*返回的长度*/while (*temp){/*只记录空格后是字母的地址*/if ((*temp ) && (*(temp 1) ! \0) && (*(temp 1) ! )){ret temp 1;}temp;}while (*ret){if (isalpha(*ret) ! 0)…...

快递鸟荣获全球电子商务创业创新大赛总决赛一等奖

日前&#xff0c;以“开放、连接、协同、赋能”为主题&#xff0c;由商务部中国国际电子商务中心指导&#xff0c;浙江省商务厅、中共省委组织部、中共省委宣传部、中共省委网信办、省发展和改革委、省教育厅、省科技厅、省财政厅、省人力社保厅、团省委主办&#xff0c;湖州市…...

阶段七-Day02-SpringMVC

一、Restful请求格式 1. 介绍 Rest(Representational State Transfer&#xff1a;表现层状态转移)是一种软件架构风格&#xff0c;其核心是面向资源的一种设计。何为面向资源&#xff0c;意思是网络上的所有事物都可以抽象为资源&#xff0c;而每个资源都有唯一的资源标识&…...

YOLOv5独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv5独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…...

【深度学习】pytorch快速得到mobilenet_v2 pth 和onnx

在linux执行这个程序&#xff1a; import torch import torch.onnx from torchvision import transforms, models from PIL import Image import os# Load MobileNetV2 model model models.mobilenet_v2(pretrainedTrue) model.eval()# Download an example image from the P…...

高防CDN安全防护系统在业务方面的应用

在当今数字化的时代&#xff0c;网络安全问题日益严峻&#xff0c;保护网站和数据免受攻击变得至关重要。CDN安全防护系统作为一种有效的解决方案&#xff0c;受到了广泛关注。小德将向您介绍CDN安全防护系统的原理、应用场景以及使用方法&#xff0c;助您更好地保障网络安全。…...

opencv(3):控制鼠标,创建 tackbar控件

文章目录 控制鼠标相关APIsetMouseCallbackcallback TrackBar 控件cv2.createTrackbarcv2.getTrackbarPos&#xff1a; 控制鼠标相关API setMouseCallback(winname, callback, userdata)callback(event, x, y, flags, userdata) setMouseCallback 在 OpenCV 中&#xff0c;s…...

UE4动作游戏实例RPG Action解析二:GAS系统播放武器绑定的技能,以及GE效果

一、GAS系统播放武器技能 官方实例激活技能通过装备系统数据激活,我先用武器数据资产直接激活 官方实例蒙太奇播放是自定义的AbilityTask,我先用更简单的方法实现效果 1.1、技能系统必要步骤: 1.1.1 插件启用AbilitySystem 1.1.2 PlayerCharacter绑定技能组件AbilitySy…...

做完这些_成为机器学习方面的专家

简单记个帖子, 用来记录学习机器学习的路线图 1. 数学分析, 高等代数, 概率论这三大件不多说, 基础中的基础. 2. 对于编程工具, b站上500集的python教程---python面向对象编程五部曲(从零到就业). 3. 对于机器学习的理论板块, 推荐b站up主---啥都会一点的研究生, 里面有一个吴恩…...

kubernetes|云原生| 如何优雅的重启和更新pod---pod生命周期管理实务

前言&#xff1a; kubernetes的管理维护的复杂性体现在了方方面面&#xff0c;例如&#xff0c;&#xff50;&#xff4f;&#xff44;的管理&#xff0c;服务的管理&#xff0c;用户的管理&#xff08;&#xff32;&#xff22;&#xff21;&#xff23;&#xff09;&#xf…...

【总结】坐标变换和过渡矩阵(易忘记)

xCy&#xff0c;此为x到y的坐标变换。 [β1,β2,…,βn] [α1,α2,…αn]C&#xff0c;此为基α到基β的过渡矩阵。 这个概念经常忘记。。。alpha到beta看来就是alpha后面加一个过渡矩阵了&#xff0c;很直观。坐标变换就是根据过渡矩阵和基本形式推一推得到吧&#xff0c;记…...

第十一周任务总结

本周任务总结 本周物联网方面主要继续进行网关的二次开发与规则引擎实现设备联动的实现 非物联网方面主要复习了docker的使用与算法的学习 1.网关的二次开发&#xff0c;本周将实现debug调试输出的文件下载到了网关&#xff0c;但网关出了问题无法连接&#xff0c;最终跟客服…...

Java Web——JavaScript基础

1. 引入方式 JavaScript程序不能独立运行&#xff0c;它需要被嵌入HTML中&#xff0c;然后浏览器才能执行 JavaScript 代码。 通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;有3种方式&#xff1a; 1.1. 内嵌式(嵌入式) 直接写在html文件里&#xff0c;用s…...

Vue3 toRaw 和 markRaw

一、toRaw 我们可以使用ref 和 reactive 将普通对象类型的数据变为响应式的数据。 我们可以使用toRaw 将reactive 对象的数据变为一般对象类型的数据。 使用toRaw 需要先进行引入&#xff1a; import { toRaw } from vue; 语法格式&#xff1a; const xxx toRaw(数据) set…...

麒麟信安助力长沙市就业与社保数据服务中心政务系统向自主创新演进

应用场景 长沙市就业与社保数据服务中心依托长沙市“政务云”的公共基础资源和相应的支撑能力&#xff0c;围绕社保、就业、人事人才、劳动关系等人社全量业务服务&#xff0c;力求建立以“智慧服务、智慧监管、智慧决策”为核心的“智慧人社”综合服务平台&#xff0c;实现人…...

【LeetCode刷题-双指针】--16.最接近的三数之和

16.最接近的三数之和 方法&#xff1a;排序双指针 class Solution {public int threeSumClosest(int[] nums, int target) {Arrays.sort(nums);int ans nums[0] nums[1] nums[2];for(int i 0;i<nums.length;i){int start i1,end nums.length - 1;while(start < en…...

Mac 安装 protobuf 和Android Studio 使用

1. 安装,执行命令 brew install protoc 2. Mac 错误提示&#xff1a;zsh: command not found: brew解决方法 解决方法&#xff1a;mac 安装homebrew&#xff0c; 用以下命令安装&#xff0c;序列号选择中科大&#xff08;1&#xff09;或 阿里云 /bin/zsh -c "$(curl…...

MongoDB入门级别教程全(Windows版,保姆级教程)

下载mongodb 进入官网&#xff1a; Download MongoDB Community Server | MongoDB 选择msi&#xff0c;Windows版本 下载完后直接双击&#xff1a; 选择complete 这里建议改地方&#xff1a; 我这里直接改成d盘&#xff1a;work目录下面&#xff1a; 点击next&#xff1a; 因…...

基于机器学习的居民消费影响因子分析预测

项目视频讲解: 基于机器学习的居民消费影响因子分析预测_哔哩哔哩_bilibili 主要工作内容: 完整代码: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import missingno as msno import warnings warnings.filterwarnin…...

Qt HTTP 摘要认证(海康球机摄像机ISAPI开发)

接到一个需求是开发下海康的球机,控制云台,给到我的是一个开发手册,当然了是海康的私有协议 ISAPI开发手册https://download.csdn.net/download/qq_37059136/88547425关于开发这块读文档就可以理解了,海康使用的是摘要认证,当然了海康已经给出使用范例 通过libcurl就可以直接连…...

srs webrtc推拉流环境搭建(公网)

本地环境搭建 官方代码https://github.com/ossrs/srs 拉取代码&#xff1a; git clone https://github.com/ossrs/srs.gitcd ./configure make ./objs/srs -c conf/https.rtc.confsrs在公网上&#xff0c;由于srs是lite-ice端&#xff0c;导致他不会主动到srs获取自己的公网i…...

【Flutter】设计原则(2)深入解析 SOLID 原则的应用

【Flutter】设计原则(2)深入解析 SOLID 原则的应用 文章目录 一、前言二、SOLID原则三、在 Flutter 中应用单一职责原则1. 专注单一功能的 Widget2. 提高代码可维护性四、在 Flutter 中应用开闭原则1. 利用多态和基类实现可扩展的 Widget2. 增强应用的可扩展性和灵活性五、在…...