<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          運(yùn)維必知的20個(gè)網(wǎng)絡(luò)安全知識(shí)點(diǎn)

          共 13974字,需瀏覽 28分鐘

           ·

          2024-05-23 08:00


          什么是SQL注入攻擊


          01

          概述

          攻擊者在 HTTP 請(qǐng)求中注入惡意的 SQL 代碼,服務(wù)器使用參數(shù)構(gòu)建數(shù)據(jù)庫(kù) SQL 命令時(shí),惡意SQL 被一起構(gòu)造,并在數(shù)據(jù)庫(kù)中執(zhí)行。

          注入方法

          用戶登錄,輸入用戶名 lianggzone,密碼 ‘ or ‘1’=’1 ,如果此時(shí)使用參數(shù)構(gòu)造的方式,就會(huì)出現(xiàn)

          select * from user where name = ‘lianggzone’ and password = ‘’ or ‘1’=‘1’

          不管用戶名和密碼是什么內(nèi)容,使查詢出來(lái)的用戶列表不為空。如何防范 SQL 注入攻擊使用預(yù)編譯的 PrepareStatement 是必須的,但是一般我們會(huì)從兩個(gè)方面同時(shí)入手。

          Web端預(yù)防

          • 有效性檢驗(yàn)。

          • 限制字符串輸入的長(zhǎng)度。

          服務(wù)端預(yù)防

          • 不用拼接 SQL 字符串。

          • 使用預(yù)編譯的 PrepareStatement。

          • 有效性檢驗(yàn)。(為什么服務(wù)端還要做有效性檢驗(yàn)?第一準(zhǔn)則,外部都是不可信的,防止攻擊者繞過(guò) Web 端請(qǐng)求)

          • 過(guò)濾 SQL 需要的參數(shù)中的特殊字符。比如單引號(hào)、雙引號(hào)。



          什么是XSS攻擊


          02

          概述

          跨站點(diǎn)腳本攻擊,指攻擊者通過(guò)篡改網(wǎng)頁(yè),嵌入惡意腳本程序,在用戶瀏覽網(wǎng)頁(yè)時(shí),控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。

          如何防范XSS攻擊

          • 前端,服務(wù)端,同時(shí)需要字符串輸入的長(zhǎng)度限制。

          • 前端,服務(wù)端,同時(shí)需要對(duì) HTML 轉(zhuǎn)義處理。將其中的”<”,”>”等特殊字符進(jìn)行轉(zhuǎn)義編碼。

          預(yù)防XSS 的核心是必須對(duì)輸入的數(shù)據(jù)做過(guò)濾處理。


          CSRF攻擊


          03

          概述

          跨站點(diǎn)請(qǐng)求偽造,指攻擊者通過(guò)跨站請(qǐng)求,以合法的用戶的身份進(jìn)行非法操作??梢赃@么理解 CSRF 攻擊:攻擊者盜用你的身份,以你的名義向第三方網(wǎng)站發(fā)送惡意請(qǐng)求。CRSF 能做的事情包括利用你的身份發(fā)郵件,發(fā)短信,進(jìn)行交易轉(zhuǎn)賬,甚至盜取賬號(hào)信息。

          如何防范CSRF攻擊

          1. 安全框架,例如 Spring Security。

          2. token機(jī)制:在 HTTP 請(qǐng)求中進(jìn)行 token 驗(yàn)證,如果請(qǐng)求中沒(méi)有 token 或者 token 內(nèi)容不正確,則認(rèn)為 CSRF 攻擊而拒絕該請(qǐng)求。

          3. 驗(yàn)證碼:通常情況下,驗(yàn)證碼能夠很好地遏制 CSRF 攻擊,但是很多情況下,出于用戶體驗(yàn)考慮,驗(yàn)證碼只能作為一種輔助手段,而不是最主要的解決方案。

          4. referer 識(shí)別:在 HTTP Header 中有一個(gè)字段 Referer,它記錄了 HTTP 請(qǐng)求的來(lái)源地址。如果 Referer 是其他網(wǎng)站,就有可能是 CSRF 攻擊,則拒絕該請(qǐng)求。但是,服務(wù)器并非都能取到 Referer。很多用戶出于隱私保護(hù)的考慮,限制了 Referer 的發(fā)送。在某些情況下,瀏覽器也不會(huì)發(fā)送 Referer,例如 HTTPS 跳轉(zhuǎn)到 HTTP。

          • 驗(yàn)證請(qǐng)求來(lái)源地址;

          • 關(guān)鍵操作添加驗(yàn)證碼;

          • 在請(qǐng)求地址添加 token 并驗(yàn)證。




          文件上傳漏洞


          04

          概述

          文件上傳漏洞,指的是用戶上傳一個(gè)可執(zhí)行的腳本文件,并通過(guò)此腳本文件獲得了執(zhí)行服務(wù)端命令的能力。

          許多第三方框架、服務(wù),都曾經(jīng)被爆出文件上傳漏洞,比如很早之前的 Struts2,以及富文本編輯器等等,可被攻擊者上傳惡意代碼,有可能服務(wù)端就被人黑了。

          如何防范文件上傳攻擊

          • 判斷文件類型。在判斷文件類型的時(shí)候,可以結(jié)合使用 MIME Type,后綴檢查等方式。因?yàn)閷?duì)于上傳文件,不能簡(jiǎn)單地通過(guò)后綴名稱來(lái)判斷文件的類型,因?yàn)楣粽呖梢詫⒖蓤?zhí)行文件的后綴名稱改為圖片或其他后綴類型,誘導(dǎo)用戶執(zhí)行。

          • 對(duì)上傳的文件類型進(jìn)行白名單校驗(yàn),只允許上傳可靠的類型。

          • 上傳的文件需要進(jìn)行重新命名,使攻擊者無(wú)法猜想上傳文件的訪問(wèn)路徑,將極大地增加攻擊成本,同時(shí)向shell.php.rar.ara 這種文件,因?yàn)橹孛鵁o(wú)法成功實(shí)施攻擊。

          • 限制上傳文件的大小。

          • 單獨(dú)設(shè)置文件服務(wù)器的域名。



          DDoS攻擊


          05

          概述

          客戶端向服務(wù)端發(fā)送請(qǐng)求鏈接數(shù)據(jù)包,服務(wù)端向客戶端發(fā)送確認(rèn)數(shù)據(jù)包,客戶端不向服務(wù)端發(fā)送確認(rèn)數(shù)據(jù)包,服務(wù)器一直等待來(lái)自客戶端的確認(rèn)沒(méi)有徹底根治的辦法,除非不使用 TCP

          DDos 預(yù)防:

          • 限制同時(shí)打開 SYN 半鏈接的數(shù)目

          • 縮短 SYN 半鏈接的 Time out 時(shí)間

          • 關(guān)閉不必要的服務(wù)



          ARP協(xié)議


          06

          概述

          地址解析協(xié)議,即 ARP(Address Resolution Protocol),是根據(jù) IP 地址獲取物理地址的一個(gè)TCP/IP 協(xié)議。

          1. 發(fā)送 ARP 請(qǐng)求的以太網(wǎng)數(shù)據(jù)幀 廣播 到以太網(wǎng)上的每個(gè)主機(jī),ARP 請(qǐng)求幀中包含了目的主機(jī)的 IP 地址。

          2. 目的主機(jī)收到了該 ARP 請(qǐng)求之后,會(huì)發(fā)送一個(gè) ARP 應(yīng)答,里面包含了目的主機(jī)的 MAC 地址。

          ARP 協(xié)議工作原理

          1. 每個(gè)主機(jī)都會(huì)在自己的 ARP 緩沖區(qū)中建立一個(gè) ARP 列表,以表示 IP 地址和 MAC 地址之間的對(duì)應(yīng)關(guān)系。

          2. 主機(jī)(網(wǎng)絡(luò)接口)新加入網(wǎng)絡(luò)時(shí)(也可能只是 mac 地址發(fā)生變化,接口重啟等), 會(huì)發(fā)送免費(fèi) ARP 報(bào)文把自己 IP 地址與 Mac 地址的映射關(guān)系廣播給其他主機(jī)。

          3. 網(wǎng)絡(luò)上的主機(jī)接收到免費(fèi) ARP 報(bào)文時(shí),會(huì)更新自己的 ARP 緩沖區(qū)。將新的映射關(guān)系更新到自己的 ARP 表中。

          4. 某個(gè)主機(jī)需要發(fā)送報(bào)文時(shí),首先檢查 ARP 列表中是否有對(duì)應(yīng) IP 地址的目的主機(jī)的 MAC地址,如果有,則直接發(fā)送數(shù)據(jù),如果沒(méi)有,就向本網(wǎng)段的所有主機(jī)發(fā)送 ARP 數(shù)據(jù)包,該數(shù)據(jù)包包括的內(nèi)容有:源主機(jī) IP 地址,源主機(jī) MAC 地址,目的主機(jī)的 IP 地址等。

          當(dāng)本網(wǎng)絡(luò)的所有主機(jī)收到該 ARP 數(shù)據(jù)包時(shí):

          1. 首先檢查數(shù)據(jù)包中的 IP 地址是否是自己的 IP 地址,如果不是,則忽略該數(shù)據(jù)包。

          2. 如果是,則首先從數(shù)據(jù)包中取出源主機(jī)的 IP 和 MAC 地址寫入到 ARP 列表中,如果已經(jīng)存在,則覆蓋。

          3. 然后將自己的 MAC 地址寫入 ARP 響應(yīng)包中,告訴源主機(jī)自己是它想要找的 MAC地址。

              源主機(jī)收到 ARP 響應(yīng)包后。將目的主機(jī)的 IP 和 MAC 地址寫入 ARP 列表,并利用此信息發(fā)送數(shù)據(jù)。如果源主機(jī)一直沒(méi)有收到 ARP 響應(yīng)數(shù)據(jù)包,表示 ARP 查詢失敗。ARP 高速緩存(即 ARP 表)是 ARP 地址解析協(xié)議能夠高效運(yùn)行的關(guān)鍵

          如何防范ARP攻擊

          1、MAC地址綁定

          使網(wǎng)絡(luò)中每一臺(tái)計(jì)算機(jī)的IP地址與硬件地址一一對(duì)應(yīng),不可更改。

          2、使用靜態(tài)ARP緩存

          用手工方法更新緩存中的記錄,使ARP欺騙無(wú)法進(jìn)行。

          3、使用ARP服務(wù)器

          通過(guò)該服務(wù)器查找自己的ARP轉(zhuǎn)換表來(lái)響應(yīng)其他機(jī)器的ARP廣播。確保這臺(tái)ARP服務(wù)器不被黑。

          4、使用ARP欺騙防護(hù)軟件:

          如ARP防火墻

          5、及時(shí)發(fā)現(xiàn)正在進(jìn)行ARP欺騙的主機(jī)并將其隔離

          6、使用最新版本DNS服務(wù)器軟件并及時(shí)安裝補(bǔ)丁

          7、關(guān)閉DNS服務(wù)器的遞歸功能

          DNS服務(wù)器利用緩存中的記錄信息回答查詢請(qǐng)求或是DNS服務(wù)器通過(guò)查詢其它服務(wù)器獲得查詢信息并將它發(fā)送給客戶機(jī),這兩種查詢方式稱為遞歸查詢,這種查詢方式容易導(dǎo)致DNS欺騙。

          8、限制區(qū)域傳輸范圍

          限制域名服務(wù)器做出響應(yīng)的地址、限制域名服務(wù)器做出響應(yīng)的遞歸請(qǐng)求地址、限制發(fā)出請(qǐng)求的地址。

          9、限制動(dòng)態(tài)更新

          10、采用分層的DNS體系結(jié)構(gòu)

          11、檢查源代碼

          如果發(fā)生了URL重定向,就一定會(huì)發(fā)現(xiàn)。不過(guò),檢查用戶連接的每一個(gè)頁(yè)面的源代碼對(duì)普通用戶來(lái)說(shuō)是不切實(shí)際的想法。

          12、確保應(yīng)用有效和能適當(dāng)?shù)馗櫽脩?/strong>

          無(wú)論是使用cookie還是會(huì)話ID,都應(yīng)該確保要盡可能的長(zhǎng)和隨機(jī)。



          RARP工作原理


          07

          反向地址轉(zhuǎn)換協(xié)議,網(wǎng)絡(luò)層協(xié)議,RARP 與 ARP 工作方式相反。RARP 使只知道自己硬件地址的主機(jī)能夠知道其 IP 地址。RARP 發(fā)出要反向解釋的物理地址并希望返回其 IP地址,應(yīng)答包括能夠提供所需信息的 RARP 服務(wù)器發(fā)出的 IP 地址。

          原理:

          1. 網(wǎng)絡(luò)上的每臺(tái)設(shè)備都會(huì)有一個(gè)獨(dú)一無(wú)二的硬件地址,通常是由設(shè)備廠商分配的MAC地址。主機(jī)從網(wǎng)卡上讀取 MAC 地址,然后在網(wǎng)絡(luò)上發(fā)送一個(gè) RARP 請(qǐng)求的廣播數(shù)據(jù)包,請(qǐng)求 RARP服務(wù)器回復(fù)該主機(jī)的 IP 地址。

          2. RARP 服務(wù)器收到了 RARP 請(qǐng)求數(shù)據(jù)包,為其分配 IP 地址,并將 RARP 回應(yīng)發(fā)送給主機(jī)。

          3. PC1 收到 RARP 回應(yīng)后,就使用得到的 IP 地址進(jìn)行通訊。



          DNS工作原理


          08

          將主機(jī)域名轉(zhuǎn)換為 ip 地址,屬于應(yīng)用層協(xié)議,使用 UDP 傳輸。

          過(guò)程:

          總結(jié):瀏覽器緩存,系統(tǒng)緩存,路由器緩存,IPS 服務(wù)器緩存,根域名服務(wù)器緩存,頂級(jí)域名服務(wù)器緩存,主域名服務(wù)器緩存。

          兩種查詢方式

          1. 主機(jī)向本地域名服務(wù)器的查詢一般都是采用遞歸查詢。

          2. 本地域名服務(wù)器向根域名服務(wù)器的查詢的迭代查詢。


          1. 當(dāng)用戶輸入域名時(shí),瀏覽器先檢查自己的緩存中是否有這個(gè)域名映射的 ip 地址,如果有解析結(jié)束。

          2. 若沒(méi)命中,則檢查操作系統(tǒng)緩存(如 Windows 的 hosts)中有沒(méi)有解析過(guò)的結(jié)果,有解析結(jié)束。

          3. 若無(wú)命中,則請(qǐng)求本地域名服務(wù)器解析( LDNS)。

          4. 若 LDNS 沒(méi)有命中就直接跳到根域名服務(wù)器請(qǐng)求解析。根域名服務(wù)器返回給 LDNS一個(gè) 主域名服務(wù)器地址。

          5. 此時(shí) LDNS 再發(fā)送請(qǐng)求給上一步返回的 gTLD( 通用頂級(jí)域), 接受請(qǐng)求的 gTLD 查找并返回這個(gè)域名對(duì)應(yīng)的 Name Server 的地址

          6. Name Server 根據(jù)映射關(guān)系表找到目標(biāo) ip,返回給 LDNS

          7. LDNS 緩存這個(gè)域名和對(duì)應(yīng)的 ip, 把解析的結(jié)果返回給用戶,用戶根據(jù) TTL 值緩存到本地系統(tǒng)緩存中,域名解析過(guò)程至此結(jié)束


          DNS攻擊

          DNS攻擊防范

          1. 安全更新:及時(shí)升級(jí)所有相關(guān)軟件和操作系統(tǒng)補(bǔ)丁,并確保所有設(shè)備都有最新版本的安全防護(hù)軟件。

          2. 配置正確的權(quán)限:只給予必要用戶相應(yīng)權(quán)限,并禁止使用弱密碼進(jìn)行登錄。

          3. 加密傳輸:使用加密技術(shù)(例如SSL / TLS)來(lái)保護(hù)敏感數(shù)據(jù)在傳輸過(guò)程中不受干擾或泄露。

          4. 多層次驗(yàn)證機(jī)制: 在登錄系統(tǒng)前先經(jīng)過(guò)多重身份驗(yàn)證, 以此增強(qiáng)賬戶安全性

          5. 增加容錯(cuò)機(jī)制: 對(duì)于核心業(yè)務(wù)建立冷備和熱備,在一旦發(fā)生故障時(shí),可以快速切換到備份系統(tǒng)上,降低業(yè)務(wù)中斷的風(fēng)險(xiǎn)。



          RIP的工作原理


          09

          RIP 動(dòng)態(tài)路由選擇協(xié)議(網(wǎng)絡(luò)層協(xié)議)

          RIP 是一種基于距離矢量(Distance-Vector)算法的協(xié)議,它使用跳數(shù)(Hop Count)作為度量來(lái)衡量到達(dá)目的網(wǎng)絡(luò)的路由距離。RIP 通過(guò) UDP 報(bào)文進(jìn)行路由信息的交換,使用的端口號(hào)為 520。

          工作原理:

          RIP 路由協(xié)議用“更新(UNPDATES)”和“請(qǐng)求(REQUESTS)”這兩種分組來(lái)傳輸信息的。每個(gè)具有 RIP 協(xié)議功能的路由器每隔 30 秒用 UDP520 端口給與之直接相連的機(jī)器廣播更新信息。并且在(用“路程段數(shù)”(即“跳數(shù)”)作為網(wǎng)絡(luò)距離的尺度。每個(gè)路由器在)給相鄰路由器發(fā)出路由信息時(shí),都會(huì)給每個(gè)路徑加上內(nèi)部距離

          路由器的收斂機(jī)制:

          任何距離向量路由選擇協(xié)議(如 RIP)都有一個(gè)問(wèn)題,路由器不知道網(wǎng)絡(luò)的全局情況,路由器必須依靠相鄰路由器來(lái)獲取網(wǎng)絡(luò)的可到達(dá)信息。由于路由選擇更新信息在網(wǎng)絡(luò)上傳播慢,距離向量路由選擇算法有一個(gè)慢收斂問(wèn)題,這個(gè)問(wèn)題將導(dǎo)致不一致性產(chǎn)生。

          RIP 較少路由收斂機(jī)制帶來(lái)的問(wèn)題:

          1. 記數(shù)到無(wú)窮大機(jī)制:RIP 協(xié)議允許最大跳數(shù)為 15。大于 15 的目的地被認(rèn)為是不可達(dá)。當(dāng)路徑的跳數(shù)超過(guò) 15,這條路徑才從路由表中刪除。

          2. 水平分割法:路由器不向路徑到來(lái)的方向回傳此路徑。當(dāng)打開路由器接口后,路由器記錄路徑是從哪個(gè)接口來(lái)的,并且不向此接口回傳此路徑。

          3. 破壞逆轉(zhuǎn)的水平分割法:忽略在更新過(guò)程中從一個(gè)路由器獲取的路徑又傳回該路由器

          4. 保持定時(shí)器法:防止路由器在路徑從路由表中刪除后一定的時(shí)間內(nèi)(通常為 180 秒)接受新的路由信息。保證每個(gè)路由器都收到了路徑不可達(dá)信息

          5. 觸發(fā)更新法: 當(dāng)某個(gè)路徑的跳數(shù)改變了,路由器立即發(fā)出更新信息,不管路由器是否到達(dá)常規(guī)信息更新時(shí)間都發(fā)出更新信息。

          RIP的特點(diǎn)

          1. 由于15跳為最大值,RIP 只能應(yīng)用于小規(guī)模網(wǎng)絡(luò);

          2. 收斂速度慢;

          3. 根據(jù)跳數(shù)選擇的路由,不一定是最優(yōu)路由。

          OSPF 協(xié)議?OSPF 的工作原理

          OSPF(Open Shortest Pass First,開放最短路徑優(yōu)先協(xié)議),是一個(gè)最常用的內(nèi)部網(wǎng)管協(xié)議,是一個(gè)鏈路狀態(tài)協(xié)議。(網(wǎng)絡(luò)層協(xié)議,)


          原理:

          OSPF 組播的方式在所有開啟 OSPF 的接口發(fā)送 Hello 包,用來(lái)確定是否有 OSPF 鄰居,若發(fā)現(xiàn)了,則建立 OSPF 鄰居關(guān)系,形成鄰居表,之后互相發(fā)送 LSA(鏈路狀態(tài)通告)相互通告路由,形成 LSDB(鏈路狀態(tài)數(shù)據(jù)庫(kù))。再通過(guò) SPF 算法,計(jì)算最佳路徑(cost 最?。┖蠓湃肼酚杀?/span>



          TCP與UDP區(qū)別


          10

          1. TCP 面向連接(如打電話要先撥號(hào)建立連接)提供可靠的服務(wù);UDP 是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接,;UDP 盡最大努力交付,即不保證可靠交付。(由于 UDP 無(wú)需建立連接,因此 UDP 不會(huì)引入建立連接的時(shí)延,TCP 需要在端系統(tǒng)中維護(hù)連接狀態(tài),比如接受和發(fā)送緩存,擁塞控制,序號(hào)與確認(rèn)號(hào)的參數(shù)等,故 TCP 會(huì)比 UDP 慢)

          2. UDP 具有較好的實(shí)時(shí)性,工作效率比 TCP 高,適用于對(duì)高速傳輸和實(shí)時(shí)性有較高的通信或廣播通信。

          3. 每一條 TCP 連接只能是一對(duì)一的;UDP 支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交互通信

          4. UDP 分組首部開銷小,TCP 首部開銷 20 字節(jié);UDP 的首部開銷小,只有 8 個(gè)字節(jié)。

          5. TCP 面向字節(jié)流,實(shí)際上是 TCP 把數(shù)據(jù)看成一連串無(wú)結(jié)構(gòu)的字節(jié)流;UDP 是面向報(bào)文的(一次交付一個(gè)完整的報(bào)文,報(bào)文不可分割,報(bào)文是 UDP 數(shù)據(jù)報(bào)處理的最小單位)。

          6. UDP 適合一次性傳輸較小數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用,如 DNS,SNMP 等

          什么是三次握手四次揮手?tcp 為什么要三次握手?

          為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端,因而產(chǎn)生錯(cuò)誤

          第一次握手:建立連接時(shí),客戶端發(fā)送 syn 包(syn=j)到服務(wù)器,并進(jìn)入 SYN_SEND 狀態(tài),等待服務(wù)器確認(rèn);

          第二次握手:服務(wù)器收到 syn 包,必須確認(rèn)客戶的 SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN 包(syn=k),即 SYN+ACK 包,此時(shí)服務(wù)器進(jìn)入 SYN_RECV 狀態(tài);

          第三次握手:客戶端收到服務(wù)器的 SYN+ACK 包,向服務(wù)器發(fā)送確認(rèn)包 ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入 ESTABLISHED 狀態(tài),完成三次握手。

          完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù)

          四次揮手

          客戶端先發(fā)送 FIN,進(jìn)入 FIN_WAIT1 狀態(tài),用來(lái)關(guān)閉 Client 到 Server 的數(shù)據(jù)傳送服務(wù)端收到 FIN,發(fā)送 ACK,進(jìn)入 CLOSE_WAIT 狀態(tài),客戶端收到這個(gè) ACK,進(jìn)入 FIN_WAIT2狀態(tài)。

          服務(wù)端發(fā)送 FIN,進(jìn)入 LAST_ACK 狀態(tài),用來(lái)關(guān)閉 Server 到 Client 的數(shù)據(jù)傳送客戶端收到 FIN,發(fā)送 ACK,進(jìn)入 TIME_WAIT 狀態(tài),服務(wù)端收到 ACK,進(jìn)入 CLOSE 狀態(tài)(等待 2MSL 時(shí)間,約 4 分鐘。主要是防止最后一個(gè) ACK 丟失。)

          第一次揮手:主動(dòng)關(guān)閉方發(fā)送一個(gè) FIN,用來(lái)關(guān)閉主動(dòng)方到被動(dòng)關(guān)閉方的數(shù)據(jù)傳送,也就是主動(dòng)關(guān)閉方告訴被動(dòng)關(guān)閉方:我已經(jīng)不 會(huì)再給你發(fā)數(shù)據(jù)了(當(dāng)然,在 fin 包之前發(fā)送出去的數(shù)據(jù),如果沒(méi)有收到對(duì)應(yīng)的 ack 確認(rèn)報(bào)文,主動(dòng)關(guān)閉方依然會(huì)重發(fā)這些數(shù)據(jù)),但是,此時(shí)主動(dòng)關(guān)閉方還可 以接受數(shù)據(jù)。

          第二次揮手:被動(dòng)關(guān)閉方收到 FIN 包后,發(fā)送一個(gè) ACK 給對(duì)方,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN 相同,一個(gè) FIN 占用一個(gè)序號(hào))。

          第三次揮手:被動(dòng)關(guān)閉方發(fā)送一個(gè) FIN,用來(lái)關(guān)閉被動(dòng)關(guān)閉方到主動(dòng)關(guān)閉方的數(shù)據(jù)傳送,也就是告訴主動(dòng)關(guān)閉方,我的數(shù)據(jù)也發(fā)送完了,不會(huì)再給你發(fā)數(shù)據(jù)了。

          第四次揮手:主動(dòng)關(guān)閉方收到 FIN 后,發(fā)送一個(gè) ACK 給被動(dòng)關(guān)閉方,確認(rèn)序號(hào)為收到序號(hào)+1,至此,完成四次揮手。



          GET和POST的區(qū)別


          11

          get 是獲取數(shù)據(jù),post 是修改數(shù)據(jù)

          get 把請(qǐng)求的數(shù)據(jù)放在 url 上, 以?分割 URL 和傳輸數(shù)據(jù),參數(shù)之間以&相連,所以 get 不太安全。而 post 把數(shù)據(jù)放在 HTTP 的包體內(nèi)(requrest body)get 提交的數(shù)據(jù)最大是 2k( 限制實(shí)際上取決于瀏覽器), post 理論上沒(méi)有限制。

          GET 產(chǎn)生一個(gè) TCP 數(shù)據(jù)包,瀏覽器會(huì)把 http header 和 data 一并發(fā)送出去,服務(wù)器響應(yīng) 200(返回?cái)?shù)據(jù)); POST 產(chǎn)生兩個(gè) TCP 數(shù)據(jù)包,瀏覽器先發(fā)送 header,服務(wù)器響應(yīng) 100 continue,瀏覽器再發(fā)送 data,服務(wù)器響應(yīng) 200 ok(返回?cái)?shù)據(jù))。

          GET 請(qǐng)求會(huì)被瀏覽器主動(dòng)緩存,而 POST 不會(huì),除非手動(dòng)設(shè)置。

          GET 是冪等的,而 POST 不是冪等的

          Cookies 和 session 區(qū)別

          Cookie 和 Session 都是客戶端與服務(wù)器之間保持狀態(tài)的解決方案

          1. 存儲(chǔ)的位置不同,cookie:存放在客戶端,session:存放在服務(wù)端。Session 存儲(chǔ)的數(shù)據(jù)比較安全

          2. 存儲(chǔ)的數(shù)據(jù)類型不同

            兩者都是 key-value 的結(jié)構(gòu),但針對(duì) value 的類型是有差異的cookie:value 只能是字符串類型,session:value 是 Object 類型

          3. 存儲(chǔ)的數(shù)據(jù)大小限制不同

          cookie:大小受瀏覽器的限制,很多是 4K 的大小, session:理論上受當(dāng)前內(nèi)存的限制,

          4,生命周期的控制

          cookie 的生命周期當(dāng)瀏覽器關(guān)閉的時(shí)候,就消亡了

          1. cookie 的生命周期是累計(jì)的,從創(chuàng)建時(shí),就開始計(jì)時(shí),20 分鐘后,cookie 生命周期結(jié)束,

          2. session 的生命周期是間隔的,從創(chuàng)建時(shí),開始計(jì)時(shí)如在 20 分鐘,沒(méi)有訪問(wèn) session,那么 session 生命周期被銷毀



          Session的工作原理


          12

          session 的工作原理是客戶端登錄完成之后,服務(wù)器會(huì)創(chuàng)建對(duì)應(yīng)的 session,session 創(chuàng)建完之后,會(huì)把 session 的 id 發(fā)送給客戶端,客戶端再存儲(chǔ)到瀏覽器中。這樣客戶端每次訪問(wèn)服務(wù)器時(shí),都會(huì)帶著 sessionid,服務(wù)器拿到 sessionid 之后,在內(nèi)存找到與之對(duì)應(yīng)的 session這樣就可以正常工作了。



          一次完整的HTTP請(qǐng)求過(guò)程


          13

          1. 域名解析 

          2. 發(fā)起 TCP 的 3 次握手 

          3. 建立 TCP 連接后發(fā)起 http 請(qǐng)求 

          4. 服務(wù)器響應(yīng) http請(qǐng)求,瀏覽器得到 html 代碼 

          5. 瀏覽器解析 html 代碼,并請(qǐng)求 html 代碼中的資源(如 js、css、圖片等)瀏覽器對(duì)頁(yè)面進(jìn)行渲染呈現(xiàn)給用戶。



          HTTPS和HTTP的區(qū)別


          14

          1. HTTP 協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,因此使用 HTTP 協(xié)議傳輸隱私信息非不安全, HTTPS 協(xié)議是由 SSL+HTTP 協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比 http 協(xié)議安全。

          2. https 協(xié)議需要到 ca 申請(qǐng)證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。

          3. http 和 https 使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,后者是 443。https://www.cnblogs.com/mywe/p/5407468.html



          OSI的七層模型


          15

          1. 物理層:利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實(shí)現(xiàn)比特流的透明傳輸。

          2. 數(shù)據(jù)鏈路層:接收來(lái)自物理層的位流形式的數(shù)據(jù),并封裝成幀,傳送到上一層

          3. 網(wǎng)絡(luò)層:將網(wǎng)絡(luò)地址翻譯成對(duì)應(yīng)的物理地址,并通過(guò)路由選擇算法為分組通過(guò)通信子網(wǎng)選擇最適當(dāng)?shù)穆窂健?/span>

          4. 傳輸層:在源端與目的端之間提供可靠的透明數(shù)據(jù)傳輸

          5. 會(huì)話層:負(fù)責(zé)在網(wǎng)絡(luò)中的兩節(jié)點(diǎn)之間建立、維持和終止通信

          6. 表示層:處理用戶信息的表示問(wèn)題,數(shù)據(jù)的編碼,壓縮和解壓縮,數(shù)據(jù)的加密和解密

          7. 應(yīng)用層:為用戶的應(yīng)用進(jìn)程提供網(wǎng)絡(luò)通信服務(wù)



          HTTP長(zhǎng)連接和短連接的區(qū)別


          16

          在 HTTP/1.0 中默認(rèn)使用短連接。也就是說(shuō),客戶端和服務(wù)器每進(jìn)行一次 HTTP 操作,就建立一次連接,任務(wù)結(jié)束就中斷連接。而從 HTTP/1.1 起,默認(rèn)使用長(zhǎng)連接,用以保持連接特性。什么是 TCP粘包/拆包?發(fā)生原因?解決方案 一個(gè)完整的業(yè)務(wù)可能會(huì)被 TCP 拆分成多個(gè)包進(jìn)行發(fā)送,也有可能把多個(gè)小的包封裝成一個(gè)大的數(shù)據(jù)包發(fā)送,這個(gè)就是 TCP 的拆包和粘包問(wèn)題。

          原因:

          1. 應(yīng)用程序?qū)懭霐?shù)據(jù)的字節(jié)大小大于套接字發(fā)送緩沖區(qū)的大小.

          2. 進(jìn)行MSS 大小的 TCP分段。( MSS=TCP 報(bào)文段長(zhǎng)度-TCP 首部長(zhǎng)度)3. 以太網(wǎng)的 payload 大于 MTU進(jìn)行 IP 分片。( MTU 指:一種通信協(xié)議的某一層上面所能通過(guò)的最大數(shù)據(jù)包大小。)

          解決方案:

          1.  消息定長(zhǎng)。

          2. 在包尾部增加回車或者空格符等特殊字符進(jìn)行分割

          3. 將消息分為消息頭和消息尾。

          4. 使用其它復(fù)雜的協(xié)議,如 RTMP 協(xié)議等。



          TCP如何保證可靠傳輸


          17

          1. 三次握手。

          2. 將數(shù)據(jù)截?cái)酁楹侠淼拈L(zhǎng)度。應(yīng)用數(shù)據(jù)被分割成 TCP 認(rèn)為最適合發(fā)送的數(shù)據(jù)塊(按字節(jié)編號(hào),合理分片)

          3. 超時(shí)重發(fā)。當(dāng) TCP 發(fā)出一個(gè)段后,它啟動(dòng)一個(gè)定時(shí)器,如果不能及時(shí)收到一個(gè)確認(rèn)就重發(fā)

          4. 確認(rèn)應(yīng)答:對(duì)于收到的請(qǐng)求,給出確認(rèn)響應(yīng)

          5. 校驗(yàn)和:校驗(yàn)出包有錯(cuò),丟棄報(bào)文段,不給出響應(yīng)

          6. 序列號(hào):對(duì)失序數(shù)據(jù)進(jìn)行重新排序,然后才交給應(yīng)用層

          7. 丟棄重復(fù)數(shù)據(jù):對(duì)于重復(fù)數(shù)據(jù) , 能夠丟棄重復(fù)數(shù)據(jù)

          8. 流量控制。TCP 連接的每一方都有固定大小的緩沖空間。TCP 的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機(jī)致使較慢主機(jī)的緩沖區(qū)溢出。擁塞控制。當(dāng)網(wǎng)絡(luò)擁塞時(shí),減少數(shù)據(jù)的發(fā)送。

          9. 校驗(yàn)和

            序列號(hào)

          10. 確認(rèn)應(yīng)答

          11. 超時(shí)重傳

          12. 連接管理

          13. 流量控制

          14. 擁塞控制



          常見的狀態(tài)碼


          18

          • 200:OK 客戶端請(qǐng)求成功 403 Forbidden //服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)

          • 404:Not Found //請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的 URL

          • 500:Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤 URI 和 URL 的區(qū)別 URI,統(tǒng)一資源標(biāo)識(shí)符,用來(lái)唯一的標(biāo)識(shí)一個(gè)資源。URL 可以用來(lái)標(biāo)識(shí)一個(gè)資源,而且還指明了如何定位這個(gè)資源。



          什么是SSL


          19

          SSL 代表安全套接字層。它是一種用于加密和驗(yàn)證應(yīng)用程序(如瀏覽器)和 Web 服務(wù)器之間發(fā)送的數(shù)據(jù)的協(xié)議。身份驗(yàn)證 , 加密 Https 的加密機(jī)制是一種共享密鑰加密和公開密鑰加密并用的混合加密機(jī)制。

          SSL/TLS 協(xié)議作用

          1. 認(rèn)證用戶和服務(wù),加密數(shù)據(jù),維護(hù)數(shù)據(jù)的完整性的應(yīng)用層協(xié)議加密和解密需要兩個(gè)不同的密鑰,故被稱為非對(duì)稱加密;

          2. 加密和解密都使用同一個(gè)密鑰的 對(duì)稱加密。優(yōu)點(diǎn)在于加密、解密效率通常比較高 HTTPS 是基于非對(duì)稱加密的, 公鑰是公開的

          1. 客戶端向服務(wù)器端發(fā)起 SSL 連接請(qǐng)求;

          2. 服務(wù)器把公鑰發(fā)送給客戶端,并且服務(wù)器端保存著唯一的私鑰

          3. 客戶端用公鑰對(duì)雙方通信的對(duì)稱秘鑰進(jìn)行加密,并發(fā)送給服務(wù)器端

          4. 服務(wù)器利用自己唯一的私鑰對(duì)客戶端發(fā)來(lái)的對(duì)稱秘鑰進(jìn)行解密,

          5. 進(jìn)行數(shù)據(jù)傳輸,服務(wù)器和客戶端雙方用公有的相同的對(duì)稱秘鑰對(duì)數(shù)據(jù)進(jìn)行加密解密,

          可以保證在數(shù)據(jù)收發(fā)過(guò)程中的安全,即是第三方獲得數(shù)據(jù)包,也無(wú)法對(duì)其進(jìn)行加密,解密和篡改。

          數(shù)字簽名

          因?yàn)閿?shù)字簽名、摘要是證書防偽非常關(guān)鍵的武器。“摘要”就是對(duì)傳輸?shù)膬?nèi)容,通過(guò) hash算法計(jì)算出一段固定長(zhǎng)度的串。然后,在通過(guò) CA 的私鑰對(duì)這段摘要進(jìn)行加密,加密后得到的結(jié)果就是“數(shù)字簽名”

          SSL/TLS 協(xié)議的基本思路是采用公鑰加密法,也就是說(shuō),客戶端先向服務(wù)器端索要公鑰,然后用公鑰加密信息,服務(wù)器收到密文后,用自己的私鑰解密。

          如何保證公鑰不被篡改?

          將公鑰放在數(shù)字證書中。只要證書是可信的,公鑰就是可信的。

          公鑰加密計(jì)算量太大,如何減少耗用的時(shí)間?

          每一次對(duì)話(session),客戶端和服務(wù)器端都生成一個(gè)"對(duì)話密鑰"(session key),用它來(lái)加密信息。由于"對(duì)話密鑰"是對(duì)稱加密,所以運(yùn)算速度非??欤?wù)器公鑰只用于加密"對(duì)話密鑰"本身,這樣就減少了加密運(yùn)算的消耗時(shí)間。

          (1) 客戶端向服務(wù)器端索要并驗(yàn)證公鑰。

          (2) 雙方協(xié)商生成"對(duì)話密鑰"。

          (3) 雙方采用"對(duì)話密鑰"進(jìn)行加密通信。上面過(guò)程的前兩步,又稱為"握手階段"(handshake)。

          SSL 工作過(guò)程

          A:客戶端,B:服務(wù)器端

          1. 協(xié)商加密算法:A 向 B 發(fā)送 SSL 版本號(hào)和可選加密算法,B 選擇自己支持的算法并告知 A

          2. 服務(wù)器鑒別:B 向 A 發(fā)送包含公鑰的數(shù)字證書,A 使用 CA 公開發(fā)布的公鑰對(duì)證書進(jìn)行驗(yàn)證

          3. 會(huì)話密鑰計(jì)算:A 產(chǎn)生一個(gè)隨機(jī)秘密數(shù),用 B 的公鑰進(jìn)行加密后發(fā)送給 B,B 根據(jù)協(xié)商的算法產(chǎn)生共享的對(duì)稱會(huì)話密鑰并發(fā)送給 A.

          4. 安全數(shù)據(jù)傳輸:雙方用會(huì)話密鑰加密和解密它們之間傳送的數(shù)據(jù)并驗(yàn)證其完整性



          TCP對(duì)應(yīng)的應(yīng)用層協(xié)議


          20

          FTP:定義了文件傳輸協(xié)議,使用 21 端口.

          Telnet:它是一種用于遠(yuǎn)程登陸的端口,23 端口

          SMTP:定義了簡(jiǎn)單郵件傳送協(xié)議,服務(wù)器開放的是 25 號(hào)端口。

          POP3:它是和 SMTP 對(duì)應(yīng),POP3 用于接收郵件。

          HTTP

          UDP 對(duì)應(yīng)的應(yīng)用層協(xié)議

          DNS:用于域名解析服務(wù),用的是 53 號(hào)端口

          SNMP:簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,使用 161 號(hào)端口

          TFTP(Trival File Transfer Protocal):簡(jiǎn)單文件傳輸協(xié)議,69

          文章轉(zhuǎn)自威努特工控安全



          瀏覽 90
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  SWAG国产精品一区二区 | 99高清国产 | 欧美性爱视频精品 | 丁香婷婷五月天影院 | 久久99久久精品视频 |