Httprint 指紋識別技術:網絡安全的關鍵洞察

引言

Http指紋識別現在已經成為應用程序安全中一個新興的話題,Http服務器和Http應用程序安全也已經成為網絡安全中的重要一部分。從網絡管理的立場來看,保持對各種web服務器的監視和追蹤使得Http指紋識別變的唾手可得,Http指紋識別可以使得信息系統和安全策略變的自動化,在基于已經設置了審核策略的特殊的平臺或是特殊的web服務器上,安全測試工具可以使用Http指紋識別來減少測試所需要的配置。本文將介紹現有的Http指紋識別技術,同時也將討論所遇到的一些問題并且拿出可行的解決方案。

一 指紋識別理論

指紋的定義是這樣的:1是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在紙上留下的的墨水印象;2是指可以用來識別的東西: 如特色、痕跡或特性等揭露起源的東西,表示物體或物質的特色的證據。指紋識別可以分為兩步,一是對指紋進行收集和分類; 二是將未知的指紋同被儲存在數據庫中的指紋進行比較,從而找出最符合的。當采集指紋的時候,對物體的所有主要特性的抓取是必要的。 采集較多的細節,可以對第二步產生很大的幫助。當比較指紋的時候,很有可能有幾個指紋是被不合適的匹配的,因為可指紋之間微小的差別很容易使識別產生錯誤,這也要求指紋識別需要很高的技術。指紋識別技術現在已經是網絡安全的已知技術。操作系統指紋識別在任何的網絡評估中是一件通常的工作,現在也有很多操作系統指紋識別技術。操作系統指紋識別為什么能成功?那是因為每個操作系統實現TCP/IP協議時有微小的差別,當前比較流行的是利用TCP/IP堆棧進行后操作系統識別,相關工具比如Nmap;還有的是利用ICMP進行操作系統識別,代表工具如Xprobe。Http指紋識別的原理大致上也是相同的:記錄不同服務器對Http協議執行中的微小差別進行識別。Http指紋識別比TCP/IP堆棧指紋識別復雜許多,理由是定制Http服務器的配置文件、增加插件或組件使得更改Http的響應信息變的很容易,這樣使得識別變的困難;然而定制TCP/IP堆棧的行為需要對核心層進行修改,所以就容易識別。

二 Banner獲取

查看Http應答頭信息是Http指紋識別中最簡單也是最基礎的,我們可以通過一個Tcp客戶端比如netcat來實現,一般我們用的比較多的是telnet到80端口,然后發送命令來得到響應信息,這里我們以netcat來做例子,以下是三個不同Http服務器的響應信息:

1:Apache 1.3.23 server:
Http/1.1 200 OK
Date: Mon, 08 Sep 2003 17:10:49 GMT
Server: Apache/1.3.23
Last-Modified: Mon, 08 Sep 2003 03:48:19 GMT
ETag: “32417-c4-3e5d8a83”
Accept-Ranges: bytes
Content-Length: 196
Connection: close
Content-Type: text/html

2:Microsoft IIS 5.0 server:
Http/1。1 200 OK
Server: Microsoft-IIS/5.0
Expires: Mon, 08 Sep 2003 01:41:33 GMT
Date: Mon, 08 Sep 2003 16:41:33 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 08 Sep 2003 15:32:21 GMT
ETag: “b0aac0542e25c31:89d”
Content-Length: 7369

3:Netscape Enterprise 4.1 server:
Http/1.1 200 OK
Server: Netscape-Enterprise/4。1
Date: Mon, 08 Sep 2003 16:19:04 GMT
Content-type: text/html
Last-modified: Mon, 08 Sep 2002 15:37:56 GMT
Content-length: 57
Accept-ranges: bytes
Connection: close

三 模糊服務器Banner信息

在很多情況下,獲取Banner被證明是一種很好的Http指紋識別方法。但是,網絡管理員會選擇通過配置或者是增加插件來更改或者是模糊服務器的Banner信息。當然,這樣的設置確實是自動的阻止了很多對Http服務器的攻擊。要讓服務器返回不同的Banner信息的設置是很簡單的,象Apache這樣的開放源代碼的Http服務器,用戶可以在源代碼里修改Banner信息,然后重起Http服務就生效了;對于沒有公開源代碼的Http服務器比如微軟的IIS或者是Netscape,可以在存放Banner信息的Dll文件中修改,相關的文章有討論的,這里不再贅述,當然這樣的修改的效果還是不錯的。另一種模糊Banner信息的方法是使用插件,這些插件可以提供自定義的Http應答信息。比如ServerMask這個商業軟件就可以提供這樣的功能,它是IIS服務器的一個插件,ServerMask不僅模糊了Banner信息,而且會對Http應答頭信息里的項的序列進行重新組合,從而來模仿Apache這樣的服務器,它甚至有能力扮演成任何一個Http服務器來處理每一個請求。這個軟件可以在以下地址找到:

Http://www.port80software.com/products/servermask

下面就是一個被自定義Banner信息的Http服務器的例子,Apache服務器被自定義成了未知服務器:

Http/1.1 403 Forbidden
Date: Mon, 08 Sep 2003 02:41:27 GMT
Server: Unknown-Webserver/1.0
Connection: close
Content-Type: text/html; charset=iso-8859-1

下面是一個使用了ServerMask插件的IIS服務器的例子:

Http/1.1 200 OK
Server: Yes we are using ServerMask
Date: Mon, 08 Sep 2003 02:54:17 GMT
Connection: Keep-Alive
Content-Length: 18273
Content-Type: text/html
Set-Cookie: It works on cookies

too=82.3S3.O12.NT2R0RE,4147ON3P,.4OO.; path=/
Cache-control: private

從上面的例子我們可以看到,僅僅從Banner信息來判斷Http服務器類型是遠遠不夠的。

四 協議行為

在執行Http協議時,幾乎所有的Http服務器都具有它們獨特的方法,如果Http請求是合法并且規則的,Http服務器返回的應答信息是符合RFC里的描述的。但是如果我們發送畸形的Http請求,這些服務器的響應信息就不同了,不同服務器對Http協議行為表現的不同就是Http指紋識別技術的基本根據和原理。大家還是喜歡看例子,那就讓我們來舉幾個不同的例子吧,我們將分析3種不同Http服務對不同請求所返回的響應信息,這些請求是這樣的:

1:HEAD / Http/1.0 發送基本的Http請求
2:DELETE / Http/1.0 發送那些不被允許的請求,比如Delete請求
3:GET / Http/3.0 發送一個非法版本的Http協議請求
4:GET / JUNK/1.0 發送一個不正確規格的Http協議請求

Exp1:基本的Http請求
我們先發送請求HEAD / Http/1.0,然后分析Http響應頭里的信息,對頭信息里項的排序進行分析。發送的請求命令如下:
C:>nc apache.example.com 80 //回車,下同
HEAD / Http/1.0 //輸入后回車,下同

響應信息:
1:Apache 1.3.23
Http/1.1 200 OK
Date: Mon, 08 Sep 17:10:49 GMT
Server: Apache/1.3.23
Last-Modified: Thu, 27 Feb 2003 03:48:19 GMT
ETag: “32417-c4-3e5d8a83”
Accept-Ranges: bytes
Content-Length: 196
Connection: close
Content-Type: text/html

2:IIS 5.0
Http/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: Http://iis。example。com/Default。htm
Date: Mon, 08 Sep 20:13:52 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 08 Sep 2003 10:10:50 GMT
ETag: W/“e0d362a4c335be1:ae1”
Content-Length: 133

3:Netscape Enterprise 4.1
Http/1.1 200 OK
Server: Netscape-Enterprise/4.1
Date: Mon, 08 Sep 2003 06:01:40 GMT
Content-type: text/html
Last-modified: Mon, 08 Sep 2003 01:37:56 GMT
Content-length: 57
Accept-ranges: bytes
Connection: close

比較結果: Apache頭信息里的Server和Date項的排序是不同的。

Exp2:Http DELETE請求
這次,我們將發送DELETE / Http/1.0請求,我們將分析不同Http服務器對非法請求的應答信息的不同。發送的請求命令:
C:>nc apache。example。com 80
DELETE / Http/1.0

響應信息:
1:Apache 1.3.23
Http/1.1 405 Method Not Allowed
Date: Mon, 08 Sep 2003 17:11:37 GMT
Server: Apache/1.3.23
Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS,

PATCH, PROPFIND, PROPPATCH,
MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE
Connection: close
Content-Type: text/html; charset=iso-8859-1

2:IIS 5.0
Http/1.1 403 Forbidden
Server: Microsoft-IIS/5.0
Date: Mon, 08 Sep 2003 20:13:57 GMT
Content-Type: text/html
Content-Length: 3184

3:Netscape Enterprise 4.1
Http/1.1 401 Unauthorized
Server: Netscape-Enterprise/4.1
Date: Mon, 08 Sep 2003 06:03:18 GMT
WWW-authenticate: Basic realm=“WebServer Server”
Content-type: text/html
Connection: close

比較結果: Apache響應的是"405 Method Not Allowed",IIS響應的是"403 Forbidden",Netscape響應的是 “401 Unauthorized”,發現對Delete請求,響應的信息是完全不同的。

Exp3:非法Http協議版本請求
這次我們將發送非法的Http協議版本請求,比如GET / Http/3。0請求,事實上Http 3.0是不存在的,發送請求命令:
C:>nc apache。example。com 80
GET / Http/3.0

響應信息:
1:Apache 1.3.23
Http/1.1 400 Bad Request
Date: Mon, 08 Sep 2003 17:12:37 GMT
Server: Apache/1.3.23
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

2:IIS 5.0
Http/1.1 200 OK
Server: Microsoft-IIS/5。0
Content-Location: Http://iis。example。com/Default。htm
Date: Mon, 08 Sep 2003 20:14:02 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 08 Sep 2003 20:14:02 GMT
ETag: W/“e0d362a4c335be1:ae1”
Content-Length: 133

3:Netscape Enterprise 4.1
Http/1.1 505 Http Version Not Supported
Server: Netscape-Enterprise/4.1
Date: Mon, 08 Sep 2003 06:04:04 GMT
Content-length: 140
Content-type: text/html
Connection: close

比較結果:Apache響應的是"400 Bad Request",IIS忽略了這個請求,響應信息是OK, 還返回了網站根目錄的HTML數據信息,Netscape響應的是"505 Http Version Not Supported"。

Exp4: 不正確規則協議請求
這次測試主要是對GET / JUNK/1.0. 請求的響應,發送請求命令:
C:>nc apache.example.com 80
GET / JUNK/1.0

響應信息:
1:Apache 1.3.23
Http/1.1 200 OK
Date: Sun, 15 Jun 2003 17:17:47 GMT
Server: Apache/1.3.23
Last-Modified: Thu, 27 Feb 2003 03:48:19 GMT
ETag: “32417-c4-3e5d8a83”
Accept-Ranges: bytes
Content-Length: 196
Connection: close
Content-Type: text/html

2:IIS 5.0
Http/1。1 400 Bad Request
Server: Microsoft-IIS/5.0
Date: Fri, 01 Jan 1999 20:14:34 GMT
Content-Type: text/html
Content-Length: 87

3:Netscape Enterprise 4.1

Bad request

Bad request

Your browser sent a query this server could not understand。

比較結果:在這里,Apache忽視了不規則的協議"JUNK",還返回了200 “OK” 和根目錄的一些信息,IIS響應的是"400 Bad Request",Netscape幾乎沒有返回Http頭信息,相反的卻返回了HTML格式的信息來表明這是個錯誤請求。

測試小結:我們下面列了一個表,我們可以很簡單的辨別不同的Http服務器。

服務器 頭信息項排序 Delete請求 非法版本 不規則協議
Apache/1.3.23 Date, Server 405 400 200
MS-IIS/5.0 Server, Date 403 200 400
Netscape4.1 Server, Date 401 505 no header

五 指紋識別工具

這里我們將介紹一個Http指紋識別工具Httprint,它通過運用統計學原理,組合模糊的邏輯學技術,能很有效的確定Http服務器的類型。它可以被用來收集和分析不同Http服務器產生的簽名,什么是Http簽名呢?Http簽名通過16進制轉為ASCII碼如下:

Microsoft-IIS/5.0
CD2698FD6ED3C295E4B1653082C10D64811C9DC594DF1BD04276E4BB811C9DC5
0D7645B5811C9DC52A200B4C9D69031D6014C217811C9DC5811C9DC52655F350
FCCC535BE2CE6923E2CE6923F2454256E2CE69272576B769E2CE6926CD2698FD
6ED3C295E2CE692009DB9B3E6ED3C2956ED3C2956ED3C2956ED3C295E2CE6923
6ED3C295

Apache/1.3.x
9E431BC86ED3C295811C9DC5811C9DC5050C5D32505FCFE84276E4BB630A04DB
0D7645B5970EE6BB811C9DC5CD37187C11DDC7D78398721EB06FE5D78A91CF57
FCCC535B6ED3C295FCCC535B811C9DC5E2CE69272576B769E2CE69269E431BC8
6ED3C295E2CE69262A200B4C811C9DC5811C9DC5811C9DC5811C9DC5811C9DC5
811C9DC5

Httprint先把一些Http簽名信息保存在一個文檔里,然后分析那些由Http服務器產生的結果。當我們發現那些沒有例在數據庫中的簽名信息時,我們可以利用Httprint產生的報告來擴展這個簽名數據庫,而當Httprint下一次運行時,這些新加的簽名信息也就可以使用了。Httprint可以圖形界面運行和命令行下運行,可以運行在Windows、Linux和Mac OS X平臺上。

以下是命令行下的幫助文件:
D:>Httprint
Usage: Httprint {-h | -i } -s [… options]
-h 可以是ip地址ip范圍,或者是url地址
-i 一個包含測試地址的文件,默認文件是input。txt
-s 一個包含Http簽名的文件,默認是signatures。txt
Options:
-o 默認的報告文件是"Httprintoutput。html"。可以

自己定義
-tp Ping超時時間,默認是1000 ms。 最大是30000 ms。
-t 連接和讀取超時時間,默認是10000 ms。 最大是100000 ms。
-r 重復時間。 默認是3次。 最大是30次。
-P0 指紋識別前不Ping主機。
-? 幫助信息。

例子:
Httprint -h http://www.target.com/ -s signatures.txt
Httprint -h Https://www.target.com -s signatures.txt
Httprint -h Http://www.target.com:8080/ -s signatures.txt
Httprint -h 10.0.1.1-10.0.1.254 -s signatures.txt -o 10_0_1_x.html
Httprint -i input.txt -s signatures.txt -o output.html

使用方法是很簡單的,下面是Httprint的一次輸出結果:

D:>Httprint -h Http://www.Target.com -s signatures.txt
Host: http://www.target.com/ is alive…
Finger Printing on Http://www.target.com:80/
Derived Signature:
Apache/1.3.26 (Unix)
9E431BC86ED3C295811C9DC5811C9DC5050C5D32505FCFE84276E4BBC184CB92
0D7645B5811C9DC52A200B4C811C9DC511DDC7D78398721E811C9DC5811C9DC5
E2CE6923E2CE6923E2CE6923811C9DC568D17AAE2576B769E2CE6926811C9DC5
E2CE6923E1CE67B1811C9DC5E2CE6920E2CE69206ED3C2956ED3C295E2CE6920
E2CE69206ED3C295811C9DC568D17AAEE2CE6923

Banner Reported: Apache/1.3.26 (Unix)
Banner Deduced: Apache/1.3.26
Scores:
Microsoft-IIS/4.0: 47
Microsoft-IIS/5.0: 57
Microsoft-IIS/5.0 ASP。NET: 57
Microsoft-IIS/5.1: 57
Microsoft-IIS/6.0: 75
… //略去一些
Apache/2。0。x: 70
Apache/1。3。27: 79
Apache/1。3。26: 80
Apache/1。3。[4-24]: 78
… //略去一些
Com21 Cable Modem: 49

在上面的例子中,Httprint顯示了被測服務器的簽名信息,然后將這些信息同數據庫中已有的簽名進行比較,然后對每一個指紋進行評分,分數最高的也就是最符合的。 在這個例子里, "Apache/1.3.26"是最適合的。以下是圖形界面的抓圖:

圖片
Httprint會產生一個HTML格式的報告,這個報告將對以后的分析產生很大的作用,下面是一個報告:

圖片
Httprint的功能是強大的,盡管大家可以用ServerMask這樣的軟件來模糊指紋,但是仍然可以被Httprint這樣利用統計學原理進行識別的的軟件打敗,下面是一個例子:

D:>Httprint unknown.example.com
Reported signature:
Protected by ServerMask
CD2698FD6ED3C295811C9DC5811C9DC5811C9DC594DF1BD04276E4BB811C9DC5
0D7645B5811C9DC5811C9DC59D69031D6014C217811C9DC5811C9DC580FF2CD2
FCCC535BE2CE6923E2CE6923811C9DC5E2CE69272576B769E2CE69262CEAB43E
6ED3C295FCCC535B811C9DC56ED3C2956ED3C2956ED3C2956ED3C295E2CE6923
6ED3C295
Best Match: Microsoft-IIS/5.0,Microsoft-IIS/5.1
Scores:
Microsoft-IIS/4.0: 86
Microsoft-IIS/5.0: 101
Microsoft-IIS/5.1: 101
Microsoft-IIS/6.0: 56

Apache/1.3.27: 35
Apache/1.3.26: 36
Apache/1.3.x: 34

MiniServ/0.01: 15
盡管服務器使用ServerMask迷惑了響應信息, 但是Httprint仍然精確的判斷出它是Microsoft-IIS/5.0或5.1

圖片

-END-

作者簡介:風隨水

一個從事十五年測試和質量管理者

曾經深圳乃至全國最大最活躍軟件測試QQ群群主

致力于質量管理和體系規范

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895741.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker push鏡像到阿里云

阿里云賬號 阿里云-計算,為了無法計算的價值 開通個人鏡像容器 進入控制臺,試用容器 實例列表界面 點擊上圖中的個人,個人版特性 創建個人版: 個人版實例界面: 設置密碼 個人版實例: 創建鏡像倉庫 如上…

【C#零基礎從入門到精通】(二十六)——C#三大特征-多態詳解

【C#零基礎從入門到精通】(二十六)——C#三大特征-多態詳解 在 C# 中,多態是面向對象編程的重要特性之一,它允許不同的對象對同一消息做出不同的響應。多態可以分為靜態多態和動態多態,下面將詳細介紹它們以及各自包含的知識點。 多態概述 多態性使得代碼更加靈活、可擴展…

大模型與智能體:螺旋共生,繪就智能新藍圖

大模型與智能體:螺旋共生,繪就智能新藍圖 在人工智能的前沿領域,大模型與智能體宛如兩顆璀璨的星辰,以一種精妙的螺旋共生關系,重塑著智能世界的格局,深刻影響著我們生活與工作的方方面面。 大模型&#x…

第2章 信息技術發展(一)

2.1 信息技術及其發展 2.1.1 計算機軟硬件 計算機硬件(Computer Hardware)是指計算機系統中由電子、機械和光電元件等組成的各種物理裝置的總稱。 計算機軟件 (Computer Software)是指計算機系統中的程序及其文檔,程序是計算任務的處理對象和處理規則的描述; 文檔…

藍橋杯篇---超聲波距離測量頻率測量

文章目錄 簡介第一部分:超聲波的簡介工作原理1.發射超聲波2.接收反射波3.計算時間差4.計算距離 硬件連接1.Trig2.Echo 示例代碼代碼說明注意事項1.聲速2.延時精度3.硬件連接 第二部分:頻率測量簡介頻率測量原理1.信號輸入2.計數3.計算頻率 硬件連接示例代…

CentOS系統docker配置鏡像加速registry-mirrors,配置阿里云和道客

1.可用倉庫 1.1.阿里云 2022年之后的鏡像缺失(因為被墻了),但是網速極快 https://g4f7bois.mirror.aliyuncs.com1.2.上海道客 持續更新,但是網速極慢 https://docker.m.daocloud.io2.CentOS配置腳本 注意順序。阿里云的放前…

DeepSeek24小時寫作機器人,持續創作高質量文案

內容創作已成為企業、自媒體和創作者的核心競爭力。面對海量的內容需求,人工創作效率低、成本高、質量參差不齊等問題日益凸顯。如何在有限時間內產出高質量內容?DeepSeek寫作機器人,一款24小時持續創作的智能工具,為企業和個人提…

【Elasticsearch】simple_query_string

Elasticsearch 的simple_query_string查詢是一種靈活且容錯性較強的查詢方式,它允許用戶通過簡單的語法構造查詢字符串,以實現對文檔的搜索。以下是關于simple_query_string查詢的詳細說明: 1.基本概念 simple_query_string查詢是一種基于字…

CPP集群聊天服務器開發實踐(五):nginx負載均衡配置

1 負載均衡器的原理與功能 單臺Chatserver可以容納大約兩萬臺客戶端同時在線聊天,為了提升并發量最直觀的辦法需要水平擴展服務器的數量,三臺服務器可以容納六萬左右的客戶端。 負載均衡器的作用: 把client的請求按照負載均衡算法分發到具體…

MYSQL中的性能調優方法

MySQL性能調優是數據庫管理的重要工作之一,目的是通過調整系統配置、優化查詢語句、合理設計數據庫架構等方法,提高數據庫的響應速度和處理能力。以下是常見的MySQL性能調優方法,結合具體的案例進行說明。 1. 優化查詢語句 查詢語句是數據庫…

【論文筆記】Transformer^2: 自適應大型語言模型

Code repo: https://github.com/SakanaAI/self-adaptive-llms 摘要 自適應大型語言模型(LLMs)旨在解決傳統微調方法的挑戰,這些方法通常計算密集且難以處理多樣化的任務。本文介紹了Transformer(Transformer-Squared)…

HTTP的“對話”邏輯:請求與響應如何構建數據橋梁?

一、前言 作為現代互聯網通信的基石,HTTP協議定義了客戶端與服務器之間的“對話規則”。每一次網頁加載、API調用或文件傳輸的背后,都離不開精心構造的HTTP請求與響應。請求中封裝了用戶的意圖——從請求方法、資源路徑到提交的數據;響應則承…

安裝 Docker Desktop 修改默認安裝目錄到指定目錄

Docker Desktop安裝目錄設置 Docker Desktop 默認安裝位置 (C:\Program Files\Docker\Docker) 是這個 ,導致系統盤占用過大,大概2G ; 那么如何安裝到其他磁盤呢? 根據docker desktop 官網 Docker Desktop install 我們可以看到&a…

基于實例詳解pytest鉤子pytest_generate_tests動態生成測試的全過程

關注開源優測不迷路 大數據測試過程、策略及挑戰 測試框架原理,構建成功的基石 在自動化測試工作之前,你應該知道的10條建議 在自動化測試中,重要的不是工具 作為一名軟件開發人員,你一定深知有效測試策略的重要性,尤其…

Kotlin Lambda

Kotlin Lambda 在探索Kotlin Lambda之前,我們先回顧下Java中的Lambda表達式,Java 的 Lambda 表達式是 Java 8 引入的一項強大的功能,它使得函數式編程風格的代碼更加簡潔和易于理解。Lambda 表達式允許你以一種更簡潔的方式表示實現接口&…

C#學習之DataGridView控件

目錄 一、DataGridView控件常用屬性、方法、事件匯總表 1. 常用方法、屬性和事件匯總 二、DataGridView 控件的常用方法調用 1. DataBind() 方法 2. Clear() 方法 3. Refresh() 方法 4. Sort() 方法 5. ClearSelection() 方法 6. BeginEdit() 方法 7. EndEdit() 方法…

本地事務簡介

本地事務簡介 1 事務基本性質 數據庫事務的幾個特性:原子性(Automicity)、一致性(Consistency)、隔離性或獨立性(islation)和持久性(Durability),簡稱ACID。 原子性:一系列的操作,其整體不可拆分,要么同時成功&#…

PyQt組態軟件 拖拽設計界面測試

PyQt組態軟件測試 最近在研究PyQt,嘗試寫個拖拽設計界面的組態軟件,目前實現的功能如下: 支持拖入控件,鼠標拖動控件位置 拖動控件邊緣修改控件大小支持屬性編輯器,修改當前選中控件的屬性 拖動框選控件,點選控件 控…

軟件評測師復習之計算機網絡(4)

目錄 (一)1.網絡功能和分類2.OSI七層模型3.TCP/IP協議4.傳輸介質(二)1.通信方式和交換方式2.IP地址3.IPv64.網絡規劃與設計5.磁盤冗余陣列6.網絡存儲技術(一) 1.網絡功能和分類 計算機網絡功能:數據通信、資源共享、負載均衡、高可靠性 按分布范圍和拓撲結構劃分: 網絡分類…

機器學習-1:線性回歸

常用的線性回歸模型主要有以下這些 簡單線性回歸多元線性回歸多項式回歸嶺回歸套索回歸彈性網絡回歸逐步回歸 一.簡單的一元線性回歸 1.導入必備的庫 #導入必備的庫 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection …