【网络安全】-web安全-基础知识梳理

1.渗透测试流程:

信息收集

1、获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台,用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号,社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。

2、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

3、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

4、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

5、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针

6、google hack 进一步探测网站的信息,后台,敏感文件

漏洞扫描

开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

漏洞利用

利用以上的方式拿到webshell,或者其他权限

内网渗透,权限提升

提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权

日志清理,总结报告及修复方案

2.Ow Top 10 漏洞

Sql注入:

原理:可控变量未经处理直接带入数据库查询

Information_schema是mysql5.0后自带的数据库,包含所有数据库名,列名和表名。

注入点

与数据库产生交互的界面

数据更删改查界面:登录界面,注册界面,查询框,删除页

http头部信息:cookices,user agent,referee,post请求体

检测:

在id=1后加入引号,观察页面是否报错,若报错在输入引号闭合,不在报错说明存在sql注入

输入万能公式php:’or 1=1,asp ‘or’=’or’

注入方式:

Union联合注入:

报错注入

Updataxml()函数注入:mysql对xml文档数据进行查询和修改的xpath函数,通过注入错误信息,返回mysql数据库信息

Extractvalue()函数注入:mysql对xml文档数据进行查询和修改的xpath函数,通过注入错误信息,返回mysql数据库信息

Fool()函数注入:通过注入错误信息,向下取整,返回mysql数据库信息

布尔盲注:通过len=数值,为真t假f判断数据库长度,然后用同样的方式判断出数据库名及其包含的信息

时间盲注:与布尔盲注逻辑相同,只是在判断真假时,用sleep()函数,观察回显时间变化。

Dnslog盲注: www.dnslog.cn

构造unc路径,poyload:and(select load_file(concat(‘//’,(select database()),’.子域名/abc’)))

load_file访问文件,域名后加abc(文件名)

在访问过程中解析记录会保存下来,我们在dnslog平台上会得到查询记录。

条件:

Secure_file_priv为空:可以读取磁盘目录

Secure_file_priv为x:\:可以读取某盘文件

Secure_file_priv为null:load_feil不能加载文件

宽字节注入:代码对宽字节进行转义,数据库能识别宽字节(gbk),但php不能识别gbk时%df被gbk转义,占用两个字节,将后面的引号占用,使其不被转义,到达绕过目的

二次注入:

条件:

用户向数据库插入的语句被后端代码(mysql_ escape_string, mysql_rel_escape_string)对语句进行转义使其过滤的不彻底。

数据库直接取出数据,不对数据进行转义。

使用\截断引号,可以构造语句,结合upadte语句进行二次注入。

堆叠注入:执行多条语句。

Sqlmap:

Python  sqlmap.py -r post.txt -p 注入指定参数

Python  sqlmap.py -u “url” –current -db  数据库

Xss

分类:

反射型

存储型

Dom型

Rce(远程命令执行,远程代码执行):

Csrf:客户端请求伪造

流程:

1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A

2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A

3.用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B

4.网站B接收到用户请求后,返回一些攻击性代,码,并发出一个请求要求访问第三方站点A

5.浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行

Ssrf:服务器请求伪造

文件操作漏洞  (上传 下载 包含):

原理:服务器和系统对上传文件的验证和过了不够全面,导致恶意文件被成功上传利用

分类:

文件上传:

绕过方式:

黑名单

.hataccess绕过:apache中间件有.hataccess文件会把目录内的文件当脚本直接绕过

大小写绕过:.php->Php

点绕过:.php->php . .

空格绕过:.php->php . .

双写绕过:.php->pphphp

::$$DATA流数据绕过:windows特性

白名单

%00截断:要求php<5.3.4,magic_quotes_gpc函数关闭,get提交

Oxoo截断:要求php<5.3.4,magic_quotes_gpc函数关闭,post提交

Mime文件格式绕过:

文件头检测:仅对头部信息进行验证。

二次渲染:上传的图片码经过服务器被二次整合,使得图片码被修改失效,可以抓包在内容未修改的位置加入代码。

条件竞争:服务器对图片码进行校验,需要占用资源,抓包多次并发,将服务器资源占满,使得图片码上传成功。

防护措施:

权限:windows将上传目录设置不可执行,Linux撤销目录权限

文件类型:设置为白名单,进行严格的mime和后缀名检测,启用压缩函数压缩图片,处理时破坏包含的代码。

url:使用随机数改写文件名和文件路径,并进行加密处理,使用户不能猜出文件名和文件路径的url规则。

文件下载:

原理:网站对用产查看或下载的文体不做限制,使其可以查看并下载任意敏感文件。

Windows:../../../whoami

Linux:../../../etc password

防护措施:

过滤.使用户在url中不能回溯上级目录

严格判断用户输入参数的格式

配置php.ini中open_basedir限定文件访问范围

文件包含:

原理:可控变量未被过滤,就传递到未被限制的包含函数,使得被包含函数被读取或当作脚本执行。

利用方式:

任意读取:如url1:https://a.com/1.php, url2:https://a.com/2.php, url3:https://a.com/3.php

……规则简单,可推出。

任意写入:php.ini中allow_url_include开启,apache中disablie_functions=[…],删除system

搭配文件上传

分类:

本地文件包含:只需要找上传点,把码子上传到服务器,通过本地包含脚本,运行木马。

远程文件包含:allow_url_include开启,magic_quotes_gpc关闭,包含远程服务器任意文件,危害程度大。

函数:Include(),include_once(),require(),require_once()

防护措施:

上waf

代码限制固定后缀和文件

3.中间件漏洞

iis:

iis5,7中php.ini配置开启cgi_pathinfo函数,访问时url路径后添加.php后缀名,会被服务器当作php文件进行解析,而iis6服务器默认把.asp,.asa目录下的文件都解析成.asp文件,导致其产生文件上传漏洞

apache:

解析规则:从右向左开始解析,如果后缀名为不可识别文件解析,在往左判断

如果apache中conf里有addhandler php5-script.php或addType applicatinon/x-httpd-php.jpg,无论扩展名是什么都会当作.php文件执行,产生文件上传漏洞。

Nginx:版本号小于0.8.37

解析规则:正则表达式匹配

如果Nginx中fix_pathinfo开启,访问/php.jpg会将php,jpg当作php文件解析,当php.jpg内容<?php fputs(fopen(‘shell.php’,’w’),’<?php eval($_POST[cmd])?>’)>,访问php.jpg/.php ,目录会生成一句话木马,getshell。

4.数据库注入漏洞

Mysql

Sqlsever

脚本aspx,有Xp_cmd扩展程序,通常关闭,需要sa权限开启

权限:

Rce,sql注入,文件上传,反序列化

Sa:高级权限,可执行系统命令

Db_oner:中级权限,可写入木马,getshell

Public:低级权限,可脱库

Access

Asp脚本,iis中间件

只能根据字典或者开发者习惯进行暴力猜解

偏移注入

跨库查询

5.源码框架漏洞

Spring

Thinkphp

6.登录漏类洞

单点登录:⽤户只需要登录⼀次就可以访问所有相互信任的应⽤系统

Oa统一身份认证:

普通登录:

漏洞:

弱口令

任意用户注册

用户名枚举

Js未授权访问

7.逻辑漏洞

水平越权:

普通用户1->经修改数据包->普通用户2

垂直越权:

普通用户权限->经修改数据包->管理员权限

并发:

⽤户同时访问系统并执⾏相同的操作时,这些操作可能会竞争系统资源,如果系统没有正确地处理这些并发请求,攻击者就可以利⽤这种竞争条件来执⾏某些未经授权的操作或修改数据。

例如:

领取一张优惠券时,放入bp, Turbo Intruder插件中,在任意数据出加%s,并发,得到n张优惠券。

url重定向

原:http://www.a.com&b,com

改:http://www.a.com&恶意站点.com

当前网站跳转其它站点进行二次访问,如百度使用微信登录,就会跳转到微信登录界面,如果设定不严格,⽤户输⼊到外站点的链接可以是指定好的url ,通过将url值修改成恶意站点 ,可以进⾏⽹络钓⻥欺诈等攻击⾏为。

验证码爆破

验证码简单,任意输入手机号,bp进行爆破,导致未授权访问。

短信轰炸

找到发送信息验证码的数据包,Turbo Intruder并发,接连不断的信息对用户造成影响。

8.支付漏洞

计算机语言与十进制编码转换时的数据紊乱

订单数量修改

修改为0,直接0元购,修改成负数,商家还要倒给我们钱。

后端验证逻辑错误

向上取整

花100元买一件商品,bp抓包修改为1.5件,向上取整成为2 件,等于说我们用一件商品的钱买了两件商品

向下取整

退款一件100元商品,bp抓包修改为0.5件,向下取整为0件,等于说我们可以一直修改返回包让商家给我们退款。

9.云安全

定义:云,一种类似doke的容器,部署在云安全厂商的服务器中。

公有云:第三方云服务提供商运营的云基础设施,通过互联网提供给公众使用。

私有云:由单个组织或企业自己建立和维护的云计算服务,这些服务只能被该组织或企业的内部人员访问和使用

云原生:一种现代化的软件开发和部署方法,旨在充分利用云计算的优势,提高应用程序的可伸缩性、弹性和可靠性。

上云:指企业将各类业务应用、数据等迁移至云计算平台的过程。

云服务:我们向云安全厂商购买云,云安全厂商对我们提供服务的过程,类似买了一台有大厂安全保护的虚拟机。

S3协议

亚马逊公司提供的一种可靠、高可扩展、低成本的对象存储服务协议,为用户提供了灵活、高效、安全的数据存储和访问解决方案,并广泛应用于各种领域。

核心概念:

桶(Bucket):S3中的存储单元,类似于文件系统中的目录。每个桶可以包含多个数据对象,并具有唯一的命名空间。

对象(Object):存储在S3中的数据实体,例如文件、图像、视频等。每个对象都有一个唯一的键(Key)和值(Value),以及相关的元数据(Metadata)。

区域(Region):S3服务的地理区域,不同区域的数据可能位于不同的数据中心。用户可以根据地理位置和数据访问需求选择合适的区域。

Ec2弹性服务:

用户可以根据自己的需求租用虚拟服务器来运行各种应用程序

主要特点

弹性:允许用户根据实际需求快速调整计算资源的规模,包括实例类型、数量和配置等。这种弹性使得用户能够根据业务需求灵活地扩展或缩减计算能力,以满足不同的工作负载需求。

可靠性:提供高可用性和可靠性的计算资源。AWS在全球范围内构建了多个数据中心,通过自动备份和故障转移等机制,确保用户的应用程序和数据始终可用。

安全性:提供多层次的安全措施,包括网络安全、身份验证和访问控制等。用户可以通过AWS Identity and Access Management(IAM)来管理用户和资源的访问权限,以确保数据的安全性和隐私性。

灵活性:Ec2支持多种操作系统和应用程序,用户可以根据自己的需求选择合适的操作系统和软件环境。同时,Ec2还提供了丰富的存储选项,包括云存储、块存储和文件存储等,以满足不同应用场景的需求。

云特有漏洞:

桶(Bucket)名爆破:

Bucket 不存在时有两种返回情况  分别是 InvalidBucketName 和 NoSuchBucket

Bucket 存在时有两种返回情况,分别是teamssix和AccessDenied

通过返回信息可以遍历出桶名,造成隐私泄露

桶(Bucket)名接管:

浏览她人的桶信息当返回NoSuchBucket时,我们可以从url泄露的信息,创建我们的桶(Bucket)挂载在该网址下,创建成功,就可以接管她人的桶(Bucket)。

凭证泄露:

Access Key 与 Secret Access Key 泄露

利用cf可直接接管他人的云。

10.小程序安全

小程序特有漏洞:

session_key 泄露

api泄露,导致未授权访问

小程序逆向:

设置->文件管理->默认文件保存位置,

打开小程序,C://WeChatData/WeChat files生成文件夹成为小程序运行载体,利用工具反编译。

11.App渗透与web渗透区别:

app需要测试载体,模拟器或越狱的真机,web只需要浏览器

app的客户端代码需要去壳,经jadx反编译后才能得到,而web客户端代码只需要f12就可以得到。

12.情报与隐私合规漏洞:

包括:欺诈 恶意攻击 买卖数据 薅⽺⽑

必备知识:

如何手工快速判断目标站是windows还是linux服务器?

linux大小写敏感,windows大小写不敏感。

使用ping命令,观察返回的TTL(生存时间)值。

Windows系统的TTL值一般较高,常在100以上,甚至可以达到128。

Linux系统的TTL值一般较低,常在100以下,常见值如64或255。

为何一个mysql数据库的站,只有一个80端口开放?

a、站库分离架构:

网站可能采用了服务器与数据库服务器分离的架构,即Web服务器(仅开放80端口)与数据库服务器分离部署,这种架构下,Web服务器通过内网与数据库服务器通信,而外部用户只能访问Web服务器的80端口。

b、安全加固措施:

为了减少潜在的安全风险,网站管理员可能采取了最小化开放端口的策略,仅开放必要的服务端口(如80端口用于Web服务)。

c、端口配置策略:

数据库可能配置在非默认端口上,并且该端口也未被对外开放。即使进行了端口扫描,如果未扫描到正确的端口,也无法发现数据库服务。

3389无法连接的几种情况

a端口占用

如果3389端口已被其他应用程序占用,或者存在端口冲突的情况,远程桌面服务将无法在该端口上正常运行。这时,需要检查并关闭占用3389端口的应用程序,或者更改远程桌面服务的端口号。

b防火墙与其它安全软件的阻止:

本地或远程计算机的防火墙可能设置了规则,阻止了3389端口的访问,某些安全软件(如杀毒软件、防火墙软件等)也可能会阻止或干扰远程桌面连接的建立。

c远程桌面服务未启用

在Windows系统中,远程桌面服务必须启用才能通过3389端口进行远程访问。如果服务未启动或配置不正确,如未设置正确的用户权限、未启用网络级别的身份验证等,都会导致连接失败。

d网络问题

网络延迟高或不稳定可能导致连接请求无法及时到达服务器或响应无法及时返回,从而影响3389端口的连接。

e配置错误:

IP地址冲突、子网掩码设置错误、路由问题或网络服务提供商的限制等,也可能导致远程桌面连接失败。

查看服务器响应头

如果“Server”字段中包含“Microsoft-IIS”,则目标网站很可能运行在Windows服务器上。

如果“Server”字段中包含“Apache”或“Nginx”,则目标网站很可能运行在Linux服务器上,因为这些服务器软件在Linux系统上更为常见。

访问url过程:

(1)DNS查询

第一步DNS查询:将域名转换为IP地址,并返回浏览器。

用户在浏览器地址栏中输入URL,浏览器首先会检查本地缓存(浏览器缓存、系统缓存、路由器缓存等),看是否有该URL的IP地址记录,若有直接调用,若没有进行下一步DNS解析。

(2)DNS解析:

此过程浏览器会向DNS服务器发起查询请求,DNS服务器会递归地查询各级域名服务器,直到找到对应的IP地址并返回给浏览器。

如果DNS服务器缓存了该URL的IP地址,则会直接返回给浏览器,加快解析速度。

(3)建立连接:

接下来通过TCP三次握手建立浏览器与服务器之间的连接。

eg:三次握手

第一次握手:浏览器 —>服务器

浏览器 通过解析得到的IP地址,向服务器发送TCP连接请求(SYN报文),请求建立TCP连接。

第二次握手:浏览器<—服务器

服务器收到请求后,回复一个SYN+ACK报文,表示同意建立连接,并确认浏览器的请求。

第三次握手:浏览器—>服务器

浏览器再回复一个ACK报文,确认服务器的响应,完成三次握手,TCP连接建立成功。

(3)发送请求:

TCP连接建立成功,连接到了Web服务器,浏览器会根据解析到的IP地址和端⼝号发起HTTP请求。

浏览器根据URL和需要获取的资源,构建HTTP请求报文。请求报文包括请求行(如GET / HTTP)、请求头部(Accept、User-Agent等)和请求正文(如果有的话)。

(4)接收响应:

服务器处理请求并返回HTTP响应。

eg:过程一层层剖析。

http 协议向服务器发送请求,发送请求的过程中,浏览器会向Web服务器以Stream(流)的形式传输数 据,告诉Web服务器要访问服务器⾥⾯的哪个Web应⽤下的Web资源。

服务器接收到浏览器传输的数据后,开始解析接收到的数据,服务器解析请求⾥⾯的内容时知道客户 端浏览器要访问的是应⽤⾥⾯的哪这个Web资源,然后服务器就去读取这个Web资源⾥⾯的内容,将读到的内容再以Stream(流)的形式传输给浏览器

(5)渲染页面:浏览器解析HTML、CSS、JavaScript等资源并渲染页面。

解析:浏览器会将HTML解析成⼀个DOM树。

DOM 树的构建过程是⼀个深度遍历过程:当前节点的所有⼦,节点都构建好后才会去构建当前节点的下⼀个兄弟节点。

将CSS解析成 CSS Rule Tree 。

根据DOM树和CSSOM来构造 Rendering Tree。注意:Rendering Tree 渲染树并不等同于 DOM

树,因为⼀些像 Header 或 display:none 的东⻄就没必要放在渲染树中了。

有了Render Tree,浏览器已经能知道⽹⻚中有哪些节点、各个节点的CSS定义以及他们的从属关系。

下⼀步操作称之为Layout,顾名思义就是计算出每个节点在屏幕中的位置。

再下⼀步就是绘制,即遍历render树,并使⽤UI后端层绘制每个节点

渲染:接收服务器返回html⽂件。

浏览器开始载⼊html代码,发现<head>标签内有⼀个<link>标签引⽤外部CSS⽂件,浏览器⼜发出CSS⽂件的请求,服务器返回这个CSS⽂件。

浏览器继续载⼊html中<body>部分的代码,并且CSS⽂件已经拿到⼿,可以开始渲染⻚⾯了,浏览器在代码中发现⼀个<img>标签引⽤了⼀张图⽚,向服务器发出请求。此时浏览器不会等到图⽚下载完,⽽是继续渲染后⾯的代码。服务器返回图⽚⽂件,由于图⽚占⽤了⼀定⾯积,影响了后⾯段落的排布,因此浏览器需要回过头来重新渲染这部分代码。

(6)关闭连接:

完成数据传输后,关闭TCP连接。

若每个HTTP请求/响应都会建立一个新的TCP连接,并在响应发送完毕后立即关闭。

若HTTP响应头中包含Connection: keep-alive,则TCP连接在传输完当前请求和响应后不会立即关闭,而是保持一段时间,以便传输后续的请求和响应。

关闭需要进行四次握手。

eg:四次挥手:当需要关闭TCP连接时,浏览器和服务器会进行四次挥手操作,确保双方都能正常关闭连接。

TCP/IP模型层次结构

应用层(Application Layer)

功能:直接面向用户和应用程序,提供用户与网络之间的接口,允许用户通过应用程序访问网络上的资源和服务。

协议:包括HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、POP3/IMAP(邮件接收协议)、Telnet(远程登录协议)、SSH(安全外壳协议)等。

特点:应用层协议定义了数据交换的格式和通信的规则,使得不同计算机上的应用程序能够相互通信。

传输层(Transport Layer)

功能:负责建立主机之间进程与进程之间的连接,确保数据能够可靠地从源主机传输到目的主机。

协议:主要包括TCP(传输控制协议)和UDP(用户数据报协议)。

特点:TCP提供面向连接的、可靠的、基于字节流的服务;UDP则提供无连接的、不可靠的、基于数据报的服务。

网络层(Internet Layer)

功能:负责数据从一台主机到另一台主机的传输,即实现点到点的通信。

协议:主要协议是IP(互联网协议),还包括ICMP(互联网控制消息协议)等。

特点:IP协议是TCP/IP模型的核心,它负责为数据包添加IP地址,并通过路由选择将数据包从源主机传输到目的主机。

数据链路层(Data Link Layer)

功能:负责将网络层的数据包封装成帧,并通过物理介质(如以太网、无线局域网等)进行传输。

协议:包括以太网协议、PPP(点对点协议)等。

特点:数据链路层通过MAC地址(媒体访问控制地址)来识别不同的网络设备,确保数据包能够正确地发送到目标设备。

OSI模型

1.物理层、2.数据链路层、3.网络层、4.传输层、5.会话层、6.表示层、7.应用层

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

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

相关文章

使用Rollup.js快速开始构建一个前端项目

Rollup 是一个用于 JavaScript 项目的模块打包器&#xff0c;它将小块代码编译成更大、更复杂的代码&#xff0c;例如库或应用程序。Rollup 对代码模块使用 ES6 模块标准&#xff0c;它支持 Tree-shaking&#xff08;摇树优化&#xff09;&#xff0c;可以剔除那些实际上没有被…

第7章 网络请求和状态管理

一、Axios 1 Axios概述 Axios是一个基于Promise的HTTP库&#xff0c;可以发送get、post等请求&#xff0c;它作用于浏览器和Node.js中。当运行在浏览器时&#xff0c;使用XMLHttpRequest接口发送请求&#xff1b;当运行在Node.js时&#xff0c;使用HTTP对象发送请求。 Axios的…

【jeston】torch相关环境安装

参考&#xff1a;玩转NVIDIA Jetson &#xff08;25&#xff09;— jetson 安装pytorch和torchvision torch install 安装环境 conda create -n bisenet python3.8 conda activate bisenethttps://forums.developer.nvidia.com/t/pytorch-for-jetson/72048 import torch pri…

java异步多线程Async学习记录

java异步多线程Async学习记录 第1步:声明线程池AsyncConfiguration import org.springframework.context.annotation.Bean; import org.springframework

关联信息融合的知识图补全方法

目前&#xff0c;一些基于知识表示学习的补全方法没有充分考虑多步关系路径中各关系与直接关系之间的关联信息&#xff0c;以及头尾实体类型与直接关系之间的关联信息。 本论文对这些关联信息进行提取和利用&#xff0c;并提出了知识图补全的AiTransE模型。该模型利用首尾实体之…

基于华为云智慧生活生态链设计的智能鱼缸

一. 引言 1.1 项目背景 随着智能家居技术的发展和人们对高品质生活的追求日益增长&#xff0c;智能鱼缸作为一种结合了科技与自然美的家居装饰品&#xff0c;正逐渐成为智能家居领域的新宠。本项目旨在设计一款基于华为云智慧生活生态链的智能鱼缸&#xff0c;它不仅能够提供…

BugReport中的网络差现象

一、摘要 当出现网络不好时(日志关键字“process data stall”)&#xff0c;会出现com.android.networkstack.process 后台进程联网访问“http://www.google.cn/generate_204”进行网络检测的行为&#xff0c;会额外带来功耗电流。遇到这种情况&#xff0c;主要是环境因素&…

Echarts图表柱状图基本用法(横向、纵向、柱宽度、圆角、图表渐变色、图表滚动条、图例样式等)

效果图&#xff1a; JS: function chart(){var chartDom document.getElementById(这里写div的id名称);var myChart echarts.init(chartDom);var option;myChart.clear();//图表清除&#xff0c;用于更新数据重新加载图表option {//编辑图表整体布局宽、高等等grid:{top:20…

Android基于gradle task检查各个module之间资源文件冲突情况

做组件化开发的时候&#xff0c;我们经常会遇到各个不同的module之间资源文件冲突的问题&#xff0c;运行也不报错&#xff0c;但是会出现覆盖的问题&#xff0c;导致运行之后发送错误的效果。 所以我们需要利用一个gradlke 脚本task&#xff0c;来自动化检查资源文件冲突。 …

腾讯云-云直播

云直播&#xff08;Cloud Streaming Services&#xff09;为您提供极速、稳定、专业的直播云端处理服务&#xff0c;根据业务中不同直播场景的需求&#xff0c;云直播提供标准直播、快直播、慢直播和云导播台服务&#xff0c;分别针对大规模实时观看、高并发推流录制及超低延时…

Jenkins配置流水线任务-实践操作(Pipeline-script)

Jenkins配置流水线任务-实践操作(Pipeline-script) 1、新增jenkins 任务&#xff0c;选择流水线 2、参数化 3、流水线配置 pipeline {agent anystages {stage(aoePlugin_mysql) {steps {echo "xxx&#xff0c;数据库:Mysql"echo "${HOST},${USER_NAME}"b…

AGI|如何构建一个RAG应用?入门新手攻略!

目录 一、概述 二、过程概述 三、如何优化提问&#xff1f; 四、路由和高级查询 五、丰富索引结构 六、重排序上下文 七、总结 一、概述 Retrieval Augmented Generation RAG 检索增强的内容生成。 从字面上来看检索只是一种手段途径&#xff0c;在人工智能领域中存在多种…

leetcode计数排序

计数排序&#xff08;counting sort&#xff09;通过统计元素数量来实现排序&#xff0c;通常应用于整数数组。 给定一个长度为 的数组 nums &#xff0c;其中的元素都是“非负整数” def counting_sort(nums: list[int]):"""计数排序"""# 完整实…

从调用NCCL到深入NCCL源码

本小白目前研究GPU多卡互连的方案&#xff0c;主要参考NCCL和RCCL进行学习&#xff0c;如有错误&#xff0c;请及时指正&#xff01; 内容还在整理中&#xff0c;近期不断更新&#xff01;&#xff01; 背景介绍 在大模型高性能计算时会需要用到多卡&#xff08;GPU&#xf…

三勾点餐|后台页面更新

项目介绍 三勾点餐系统基于thinkphp8element-plusuniapp打造的面向开发的小程序商城&#xff0c;方便二次开发或直接使用&#xff0c;可发布到多端&#xff0c;包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 功能说明…

从头开始的可视化数据 matplotlib:初学者努力绘制数据图

从头开始学习使用 matplotlib 可视化数据&#xff0c;对于初学者来说&#xff0c;可能会有些挑战&#xff0c;但 matplotlib 的核心理念非常清晰&#xff1a;绘制图表需要了解如何设置图形、坐标轴以及如何用数据填充它们。我们可以通过一些简单的例子来逐步介绍基本步骤。 1. …

代码审计笔记-PHP

PHP 1.php的弱类型 PHP 的“弱类型”是指在这门编程语言中&#xff0c;变量的类型在赋值时会被自动推断&#xff0c;而不是在变量声明时显式地指定类型。这意味着在 PHP 中&#xff0c;您可以将不同类型的值赋给同一个变量&#xff0c;而不需要进行类型转换或重新声明变量。 举…

基于Opencv中的DNN模块实现图像/视频的风格迁移

一、DNN模块的介绍 1、简介 OpenCV中的DNN&#xff08;Deep Neural Network&#xff09;模块是一个功能强大的组件&#xff0c;它支持深度学习网络模型的加载和推理。虽然DNN模块不提供模型的训练功能&#xff0c;但它可以与主流的深度学习框架&#xff08;如TensorFlow、Caf…

并行 parallel broadcast partition pruning 分区裁剪 optimizer_dynamic_sampling=7

insert into abc 没有PDML所以不是全部并行 只有select 的情况 全部并行&#xff0c;没有 px send broadcast &#xff0c;所以rows没从103M变成103*8M select *from A&#xff0c;B where A.Pkey B.Pkey and A.Pkey XX A B表都会进行分区裁剪 ----并行为什么更…

Linux操作系统——外存的管理(实验报告)

实验 Linux系统外存管理 一、实验目的 熟练Linux系统外存管理的方法与命令。 二、实验环境 硬件&#xff1a;PC电脑一台&#xff0c;网络正常。 配置&#xff1a;win10系统&#xff0c;内存大于8G 硬盘500G及以上。 软件&#xff1a;VMware、Ubuntu16.04。 三、实验内容 …