1. 程式人生 > >常見網路攻擊方式和加密演算法學習手冊

常見網路攻擊方式和加密演算法學習手冊

第一章 常見網路攻擊

1.1、XSS攻擊

1.1.1 XSS簡介

XSS攻擊的全稱是跨站指令碼攻擊(Cross Site Scripting),為不跟層疊樣式表
(Cascading Style Sheets,CSS)的縮寫混淆,故將跨站指令碼攻擊縮寫為XSS

跨站指令碼攻擊也就是在網站裡嵌入惡意指令碼程式,當用戶開啟網站時,竊取Cookie,盜取資訊

1.1.2 XSS攻擊方式

1、URI引數傳遞

2、表單提交引數

1.1.3 解決方案

1、繼承HttpServletRequestWrapper,然後重寫(@Override)getParameter()、getHeader()等等方法。

2、檔案上傳不走HttpServletRequestWrapper,需要繼承CommonsMultipartResolver,重寫方法

1.2、CSRF攻擊

1.2.1 CSRF簡介

CSRF全稱是跨站請求偽造(cross site request forgery),CSRF偽裝受信任使用者,向第三方平臺傳送惡意請求

案例:比如你曾經在瀏覽器訪問過銀行A的網站,所以瀏覽器是有儲存Cookie的,Cookie並沒有過期,這時,你不小心登入一個惡意的論壇網站還是什麼網站,你訪問了連結(其實連結後面加的是竊取Cookie,調銀行A網站轉賬API),這時候,如果網站安全性驗證不過的話,就會竊取金錢的惡意操作

1.2.2 解決方案

1、設定Cookie為HttpOnly

我們知道CSRF是通過竊取Cookie來發送惡意請求的,所以我們可以為Cookie設定HttpOnly屬性,這樣JavaScript或者Applet就不可以惡意傳送請求了

2、新增Token驗證

竟然Cookie有被惡意竊取的可能性,那麼我們或許可以另闢新徑,我們可以在訪問請求時加上Token,服務端再進行驗證,Token驗證通過則可以訪問,否則限制訪問,當然這個Token不可以放在Cookie裡

3、新增Referer識別

學習HTTP協議的你可能知道,在HTTP的請求頭裡有個引數叫Referer,這個引數其實就是記錄了請求的來源地址

案例:針對剛才的銀行轉賬竊取案例,我們或許可以這樣改造,我們可以再增加一個驗證的工程,不給直接呼叫轉賬介面,我們在這個驗證工程里加入Referer識別的。這時候,CSRF攻擊的話,肯定得在非銀行A官網的伺服器傳送請求,我們改造之後,這個請求會先發送到驗證工程這裡,這時候解析請求,獲取Referer屬性進行識別,發現不是銀行A官網的地址,這時候直接攔截,拒絕訪問。

1.3、SQL注入攻擊

1.3.1 SQL注入簡介

所謂SQL注入攻擊就是將一些惡意SQL執行指令偽裝成SQL引數傳給DBMS,然後執行惡意攻擊

1.3.2 解決方案

1、使用預編譯語句
學習JDBC都知道這個語句

Statement st = (Statement) conn.createStatement();

建立一個Statement物件,看起來是沒啥問題,可是對黑客來說這就是SQL注入的一個很好的程式碼缺陷了
建立Statement物件後,之後我們就是要執行SQL,執行時候是這樣的,是將SQL傳送給DBMS編譯然後再執行的,Statement沒有編譯的方法。不過PreparedStatement就不一樣了,PreparedStatement繼承Statement介面,有預編譯的方法,編譯SQL之後呢,在傳送給DBMS執行

2、必要的加密
預防SQL注入有時候是有必要進行一些加密措施的,比如使用者密碼這些重要資訊,我們可以MD5加密一下,避免明文儲存。

1.4、DDos攻擊

1.4.1 DDos攻擊簡介

DDos(Distributed Denial of Service),即分散式拒絕服務攻擊,DDos攻擊是基於Dos發展來的。

什麼是Dos呢?首先簡單介紹一下Dos,Dos就是利用信任的客戶端向服務端頻繁傳送請求,從而達到伺服器處理不過來,請求超時。所以Dos其實就是一對一的,在郵件設施還不太好的情況是有效的,對於效能極佳的伺服器壓根不管用了,所以就有了DDos,分散式拒絕服務攻擊。

DDos攻擊過程大概是怎麼樣的呢?

竟然是分散式,首先黑客可能會通過程式控制大量的計算機,然後通過這個計算機群在同一個時間,傳送大量的請求到目標伺服器,從而達到伺服器處理不過來,請求超時的情況。

1.4.2 DDos常用方式

下面簡單介紹一下兩種DDos攻擊的方式SYN Flood和DNS Query Flood

【SYN Flood】

SYN Flood是DDos的一種攻擊方法,SYN Flood是網際網路最經典的攻擊方式之一。這個攻擊是通過TCP連線建立的,攻擊前先建立TCP連線,這個需要對TCP的三次握手和四次揮手協議有一定了解,其攻擊過程大概如圖,圖來自網際網路
這裡寫圖片描述

【DNS Query Flood】

DNS Query Flood攻擊從名稱其實可以猜測出和DNS有關的了,首先簡單介紹一下DNS,DNS(Domain Name System)是位於應用層的協議,負責域名解析服務,DNS通過域名查詢IP地址,或逆向從IP地址反向查詢域名。

然後DNS Query Flood攻擊是怎麼做到的呢?

攻擊過程大致為:

通過程式控制,向目標伺服器的DNS伺服器,傳送大量的域名解析請求,不過這些域名基本是隨機生成的,比如改下埠什麼的。

DNS伺服器接收到域名之後,先去快取裡查詢是否有這個域名,然後發現沒有,之後,DNS伺服器就會向上層的DNS伺服器遞迴查詢了,指導向上查詢了全球13臺根DNS伺服器。這時候肯定會出現域名解析超時的情況。

第二章 常用加密演算法

2.1 數字摘要演算法

2.1.1 數字摘要演算法簡介

所謂數字摘要其實就是通過一個Hash函式獲取指導長度的摘要欄位,這段欄位也可以叫做數字指紋,然後解密時,通過驗證摘要也即數字指紋。大概過程如圖
這裡寫圖片描述

2.1.2 常用數字摘要演算法

MD5:也即資訊摘要演算法5,Message Digest Algorithm 5,是數字摘要演算法的一種實現,Md5由Md4、Md3、Md2改進而來,其摘要長度為128位

SHA:SHA也即安全雜湊演算法(Secure Hash Algorithm),SHA-1演算法生成的摘要資訊的長度為160位,由於生成的摘要資訊更長,運算的過程更加複雜

2.2 對稱加密演算法

2.2.1對稱加密過程

對稱加密過程大致分為加解密過程,加密過程就是明文和金鑰通過特定加密演算法進行封裝之後,變成密文,傳送給資料接收方,資料接收方,同樣用相同的演算法的逆過程進行介面,用相同的金鑰去匹對。
這裡寫圖片描述

2.2.2常見對稱加密演算法

DES演算法全稱資料加密標準(Data Encryptin Standard),屬於對稱加密演算法。

明文按64位進行分組,金鑰長64位,但事實上只有56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個金鑰都有奇數個1),分組後的明文和56位的金鑰按位替代或交換的方法形成密文。

AES演算法全稱高階加密標準(Advanced Encryption Standard),由DES演算法發展而來,設計有三個金鑰長度:128,192,256位,比DES演算法的加密強度更高,更為安全。

2.3 非對稱加密演算法

2.3.1 非對稱加密過程

非對稱加密演算法和對稱加密演算法類似,不過就是分為了公鑰和私鑰,加密過程可以用公鑰,也可以用私鑰,解密過程同理。
這裡寫圖片描述

2.3.2 常見非對稱加密演算法

RSA演算法:夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰資料加密標準。

演算法設計基本來自簡單的數論事實:將兩個大素數相乘十分容易,但反過來想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。

相關推薦

常見網路攻擊方式加密演算法學習手冊

第一章 常見網路攻擊 1.1、XSS攻擊 1.1.1 XSS簡介 XSS攻擊的全稱是跨站指令碼攻擊(Cross Site Scripting),為不跟層疊樣式表 (Cascading Style Sheets,CSS)的縮寫混淆,故將跨站指令碼攻

常見網路攻擊方式介紹及簡訊防攻擊策略的後端實現

大家好,今天給大家分享一下:幾種常見的網路攻擊方式的介紹以及簡訊防攻擊策略的後端實現。 一、背景介紹 有人的地方就有江湖,有資料互動的地方,就存在入侵風險。 只有知己知彼,才能百戰不殆。我們學習相關知識不是為了去攻擊別人的伺服器,只是為了防範於未然。 攻擊的種類多種多

網路請求中常見加密機制加密演算法理解

請求安全性: 伺服器端在接收到請求的時候,要主動鑑別該請求是否有效,是否可接受。   token:已登陸使用者的識別碼     解決的問題:使用者呼叫介面時,不用每次都帶上使用者名稱和密碼,避免了頻繁在網路中傳輸密碼被截獲的風險。     使用場景:使用者登入系統時傳入使用者名稱和密碼,伺服器校驗成功之後,根

盤點機器學習常見的損失函式優化演算法

在機器學習中,對於目標函式、損失函式、代價函式等不同書上有不同的定義。通常來講,目標函式可以衡量一個模型的好壞,對於模型的優化通常求解模型的最大化或者最小化,當求取最小化時也稱loss function即損失函式,也稱為成本函式、代價函式。 大多數情況下兩者並不

網路驗證常見攻擊方式與防禦手段

     目前,各種網路驗證系統攻擊事件層出不窮,搭過伺服器的人可能都知道,DDOS攻擊是中小型網路驗證伺服器的噩夢。基本上一打就死,而防禦DDOS攻擊的辦法也只有一種就是硬抗,普通的DDOS硬防防火

常見的網站攻擊方式防護方式

處理方法: 1.安裝ARP防火牆:360安全衛士(內建)、金山貝殼ARP專殺、金山衛士 2.安裝專門的防毒軟體: 利用區域網ARP欺騙檢測工具來確定ARP攻擊源,然後利用ARP專殺工具進行防毒。 3. 通過“網路引數”-“LAN口引數”來查詢路由器的MAC地址和IP地址,在區域網中的每臺電腦中實現靜

網站安全之幾種常見網路攻擊方式

 * syn flood: 一個使用者向伺服器傳送syn報文後,如果伺服器在發出sys+ack報文後無法收到客戶端ack報文,這種情況下伺服器端一般會重試(再次傳送syn+ack給客戶端),並等待

第四節課:幾種常見攻擊方式

pxc wql ptc hvm oid hsv ffd stl -1 1.中間人攻擊 局域網ARP攻擊 受害者經過攻擊者向網關發送數據。當主機A、和主機B通信時,都由主機C來為其“轉發”,如圖一,而A、B之間並沒有真正意思上的直接通信,他們之間的信息傳遞同C作為中介來完成

php常見攻擊方式

script 解決 update語句 select HERE csdn base ace rip 1、SQL註入 /* sql註入方式 * 1、數字註入 eg: select * from id = [1 or 1] -----通過intval()函數將id轉為數字 *

常見網路攻擊案例

1. tcp半連結攻擊 tcp半連結攻擊也稱為:SYN Flood (SYN洪水),是種典型的DoS (Denial of Service,拒絕服務) 攻擊,效果就是伺服器TCP連線資源耗盡,停止響應正常的TCP連線請求 1.1 正常連結時的情況 1.2 半連結攻擊時的情況

DDoS攻擊、CC攻擊攻擊方式防禦方法

DDoS介紹 DDoS是英文Distributed Denial of Service的縮寫,意即“分散式拒絕服務”,那麼什麼又是拒絕服務(Denial of Service)呢?可以這麼理解,凡是能導致合法使用者不能夠訪問正常網路服務的行為都算是拒絕服務攻擊。也就是說

加密演算法學習總結---DES-CBC加密演算法

DES-CBC機密演算法 DES全稱為Data Encryption Standard,即資料加密標準,是一種使用金鑰加密的塊演算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),並授權在非密級政府通訊中使用,隨後該演算法在國際

AprioriFPgrowth演算法學習

這兩天看了這兩個演算法,主要來源是機器學習實戰。 1.Apriori演算法 首先是兩個定義 項集的支援度,定義為資料集中包含該項集的記錄所佔的比例。比如對於一個單獨的item,那麼item的支援度為item出現的資料集比上總的資料集,這裡注意如果一個數據條目中重複出現一個i

[python爬蟲] Selenium常見元素定位方法操作的學習介紹

        這篇文章主要Selenium+Python自動測試或爬蟲中的常見定位方法、滑鼠操作、鍵盤操作介紹, 一. 定位元素方法 find_element_by_idfind_element_by_namefind_element_by_xpathfind_ele

常見網路攻擊及處理辦法

跨站請求偽造(CSRF) 原理 危害是攻擊者可以盜用你的身份,以你的名義傳送惡意請求。比如可以盜取你的賬號,以你的身份傳送郵件,購買商品等 例子 在某個論壇管理頁面,管理員可以在list.php頁面執行刪除帖子操作,根據URL判斷刪除帖子的id,

SQL的注入式攻擊方式避免方法

SQL 注入是一種攻擊方式,在這種攻擊方式中,惡意程式碼被插入到字串中,然後將該字串傳遞到 SQL Server 的例項以進行分析和執行。任何構成 SQL 語句的過程都應進行注入漏洞檢查,因為 SQL Server 將執行其接收到的所有語法有效的查詢。 SQL 注入

boostingbagging演算法學習

目錄 ensemble learning boosting和bagging都是整合學習(ensemble learning)領域的基本演算法[2]。 整合學習是指將若干弱分類器組合之後產生一個強分類器。弱分類器(weak learner)指那

NASH:基於豐富網路態射爬山演算法的神經網路架構搜尋 | ICLR 2018

> 論文提出NASH方法來進行神經網路結構搜尋,核心思想與之前的EAS方法類似,使用網路態射來生成一系列效果一致且繼承權重的複雜子網,本文的網路態射更豐富,而且僅需要簡單的爬山演算法輔助就可以完成搜尋,耗時0.5GPU day   來源:曉飛的演算法工程筆記 公眾號 **論文: Simple An

【安全牛學習筆記】XSS-簡介、跨站腳本檢測常見攻擊利用手段

信息安全 security+ xss XSS攻擊WEB客戶端客戶端腳本語言 彈窗警告、廣告 Javascript 在瀏覽器中執行XSS(cross-site scripting) 通過WEB站點漏洞,向客戶端交付惡意腳本代碼,實現對客戶端的攻擊目的 註入客戶端腳本代碼

【安全牛學習筆記】XSS-簡介、跨站腳本檢測常見攻擊利用手段2

信息安全 security+ xss ╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋┃XSS ┃┃攻擊WEB客戶端