国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

網(wǎng)站信息安全問(wèn)題及防護(hù)對(duì)策研究

2020-09-02 07:00陳淑紅
網(wǎng)絡(luò)空間安全 2020年7期

摘? ?要:在注重用戶體驗(yàn)的Web 2.0時(shí)代,網(wǎng)站信息安全問(wèn)題應(yīng)該引起人們足夠的重視。文章從SQL注入攻擊、數(shù)據(jù)庫(kù)的拖庫(kù)和撞庫(kù)風(fēng)險(xiǎn)、HTTP協(xié)議自身的安全缺陷、文件上傳漏洞、跨站腳本攻擊等多個(gè)方面,對(duì)網(wǎng)站可能存在的信息安全問(wèn)題進(jìn)行了詳盡的分析,并針對(duì)各種信息安全問(wèn)題給出了切實(shí)可行的防護(hù)對(duì)策,以期對(duì)加強(qiáng)網(wǎng)站信息安全工作起到拋磚引玉的作用。

關(guān)鍵詞:網(wǎng)站信息安全;SQL注入攻擊;撞庫(kù)攻擊;HTTPS;文件上傳漏洞;跨站腳本攻擊

中圖分類號(hào): TP3? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

Abstract: In such an era of WEB 2.0 that developers focus on user experience, people should pay more and more attention to website information security. This paper makes a detailed analysis of SQL injection attack, account credential enumeration attack, HTTP protocol security defects, file upload attack, XSS attack, etc. Finally, the feasible protective countermeasures are given for all kinds of information security issues, which hopes to strengthen website information security.

Key words: website information security; SQL injection attack; account credential enumeration attack; HTTPS; file upload attack; XSS attack

1 引言

隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,提供各種服務(wù)的網(wǎng)站如雨后春筍般地不斷涌現(xiàn)。根據(jù)《2020年第45次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》數(shù)據(jù)顯示,截止2019年12月,我國(guó)網(wǎng)站數(shù)量為497萬(wàn)個(gè),網(wǎng)頁(yè)數(shù)量為2978億個(gè),網(wǎng)民規(guī)模達(dá)9.04億,互聯(lián)網(wǎng)應(yīng)用呈現(xiàn)快速增長(zhǎng)態(tài)勢(shì)[1]。但是,也可以從報(bào)告中看到,境內(nèi)被篡改的網(wǎng)站數(shù)量多達(dá)185,573個(gè),被植入后門的網(wǎng)站數(shù)量高達(dá)84,850個(gè)。在注重用戶體驗(yàn)的Web 2.0時(shí)代,網(wǎng)站信息安全問(wèn)題應(yīng)該引起人們足夠的重視。網(wǎng)站信息安全既關(guān)乎9.04億網(wǎng)民的切身利益,又關(guān)系到互聯(lián)網(wǎng)生態(tài)的健康發(fā)展。

2 網(wǎng)站信息安全問(wèn)題分析

2.1 SQL注入攻擊

SQL注入攻擊是目前危害最嚴(yán)重的Web網(wǎng)站攻擊方式之一,通過(guò)把SQL命令插入到用戶輸入?yún)?shù)中,當(dāng)服務(wù)器程序?qū)⒂脩糨斎雲(yún)?shù)直接作為查詢條件,并拼接SQL語(yǔ)句向數(shù)據(jù)庫(kù)查詢返回結(jié)果時(shí),攻擊者便可以欺騙服務(wù)端進(jìn)行惡意操作[2]。例如,用戶在登錄頁(yè)面提交用戶名和密碼口令供服務(wù)器驗(yàn)證時(shí),正常的SQL查詢語(yǔ)句應(yīng)該是:

sqlQuery = "SELECT * FROM users WHERE name = '" + userName + "' and pwd = '"+ passWord +"';"

如果攻擊者將用戶名和密碼分別設(shè)為userName = "1' OR '1'='1"和passWord = "1' OR '1'='1",那么實(shí)際執(zhí)行的SQL查詢語(yǔ)句則變?yōu)椋?/p>

sqlQuery = "SELECT * FROM users WHERE name = '1' OR '1'='1' and pwd = '1' OR '1'='1';"

可以看到查詢判斷條件恒為真,從而繞過(guò)系統(tǒng)檢測(cè)達(dá)到欺騙目的。SQL注入攻擊分為:基于報(bào)錯(cuò)的SQL注入、聯(lián)合查詢SQL注入、堆疊查詢SQL注入、基于布爾的SQL盲注、基于時(shí)間的SQL盲注等。

一旦SQL注入成功,攻擊者便可以竊取、篡改或刪除網(wǎng)站數(shù)據(jù),甚至拿下WebShell,對(duì)站點(diǎn)服務(wù)器擁有絕對(duì)的控制權(quán),其破壞力不可小覷。

2.2 網(wǎng)站數(shù)據(jù)庫(kù)遭遇拖庫(kù)和撞庫(kù)風(fēng)險(xiǎn)

所謂拖庫(kù)是指網(wǎng)站遭到入侵后,黑客將該網(wǎng)站數(shù)據(jù)庫(kù)里的用戶賬號(hào)和密碼等敏感信息導(dǎo)出并存放到網(wǎng)上供人下載,而撞庫(kù)是指黑客通過(guò)收集大量已泄露的用戶賬號(hào)和密碼,將其生成對(duì)應(yīng)的字典表,用它嘗試批量登錄其他網(wǎng)站[3]。

震驚業(yè)界的CSDN“拖庫(kù)”事件中,有600萬(wàn)個(gè)注冊(cè)用戶的電子信箱賬戶和密碼等信息被泄露,之后多家著名網(wǎng)站的用戶信息被上傳到網(wǎng)絡(luò)供用戶下載。很多用戶習(xí)慣在不同的網(wǎng)站使用相同的電子信箱賬號(hào)和密碼,因此如果在一家網(wǎng)站服務(wù)器上的信息被黑客攻破,該用戶在其他網(wǎng)站的個(gè)人真實(shí)財(cái)產(chǎn)和網(wǎng)上虛擬財(cái)產(chǎn)也同樣面臨巨大風(fēng)險(xiǎn)。

如果網(wǎng)站數(shù)據(jù)庫(kù)存儲(chǔ)的用戶信息未經(jīng)數(shù)據(jù)脫敏[4]處理,那么它被拖庫(kù)和撞庫(kù)的風(fēng)險(xiǎn)極大,并且撞庫(kù)攻擊的成本和技術(shù)門檻都非常低。

2.3 HTTP協(xié)議自身的安全缺陷

HTTP缺省工作在TCP協(xié)議的80端口,用戶訪問(wèn)網(wǎng)站http://打頭的都是標(biāo)準(zhǔn)HTTP服務(wù),HTTP所封裝的信息是明文傳送的,客戶端和服務(wù)器端都無(wú)法驗(yàn)證對(duì)方的身份,通過(guò)抓包工具可以獲取傳輸信息的內(nèi)容。

如圖1所示,以POST方式向服務(wù)器提交用戶名和保密碼,利用Chrome瀏覽器自帶的抓包工具,可以很方便地獲取到用戶提交的登錄數(shù)據(jù)??梢钥吹接脩舻拿舾袛?shù)據(jù)并未加密,而是采用明文傳輸。

由于HTTP協(xié)議缺乏必要的認(rèn)證機(jī)制,可以通過(guò)截獲HTTP POST請(qǐng)求包來(lái)偽造響應(yīng)包的信息,接管交互會(huì)話,以達(dá)到會(huì)話劫持和內(nèi)容竊聽(tīng)、篡改的目的[5]。

2.4 文件上傳漏洞

文件上傳漏洞[6]是指系統(tǒng)程序沒(méi)有對(duì)上傳權(quán)限做出合理判斷,或者沒(méi)有對(duì)上傳的文件后綴及文件類型做嚴(yán)格的限制,導(dǎo)致攻擊者可以上傳含有惡意腳本的圖片文件,甚至是動(dòng)態(tài)網(wǎng)頁(yè)文件,從而為攻擊者獲取網(wǎng)站后門(即WebShell)創(chuàng)造了便利條件。

攻擊者將后門文件與服務(wù)器正常文件混在一起,使用瀏覽器像訪問(wèn)正常網(wǎng)頁(yè)一樣來(lái)訪問(wèn)這些后門,服務(wù)器中不會(huì)留下系統(tǒng)日志,使得WebShell具有較高的隱蔽性。

惡意文件可以被上傳的原因是多方面的:對(duì)上傳的文件類型沒(méi)有做出嚴(yán)格的檢查,攻擊者巧妙的利用服務(wù)器端對(duì)%00后面字符都截?cái)嗟奶攸c(diǎn),將惡意文件重名為x.asp%00x.jpg,從而騙過(guò)上傳類型的檢測(cè),將x.asp文件成功上傳至服務(wù)器;使用了含有上傳漏洞的第三方插件;對(duì)上傳文件后綴名的白名單(或黑名單)設(shè)置不當(dāng),遺漏部分?jǐn)U展名等。

2.5 跨站腳本攻擊

跨站腳本(XSS)[7]是在Web應(yīng)用程序中發(fā)現(xiàn)的最為普遍的漏洞之一,由于攻擊的對(duì)象是Web應(yīng)用的其他用戶,而不是Web應(yīng)用程序本身和其所在的服務(wù)器,往往被系統(tǒng)開(kāi)發(fā)者和管理員忽視。例如,本文設(shè)計(jì)一個(gè)收集用戶名參數(shù)的頁(yè)面sample.aspx,其主要代碼為:

<%string strUserName = Request["user"];%>

<%=strUserName%>

攻擊者可以構(gòu)造一個(gè)惡意的URL:http://域名/sample.aspx? user=。

攻擊者把此惡意URL發(fā)送給想要攻擊的用戶,當(dāng)被攻擊用戶訪問(wèn)此URL時(shí),則會(huì)出現(xiàn)如圖2所示的結(jié)果。

不難發(fā)現(xiàn),URL的JavaScript語(yǔ)句在被攻擊者的瀏覽器中執(zhí)行了。接下來(lái)攻擊者可以利用這個(gè)權(quán)限做很多事情,比如盜取用戶Cookie數(shù)據(jù)、修改用戶設(shè)置、竊取用戶賬戶、頁(yè)面彈窗釣魚(yú)、監(jiān)聽(tīng)鍵盤事件等。

3 網(wǎng)站信息安全防護(hù)對(duì)策

3.1 利用字符過(guò)濾、存儲(chǔ)過(guò)程、參數(shù)化SQL語(yǔ)句等方式避免SQL注入

要做好預(yù)防SQL注入,最有效的方法是在程序中做好用戶提交數(shù)據(jù)的合法性驗(yàn)證,對(duì)用戶輸入的敏感SQL字符(如insert、update、joins、delete、union、group、drop、exec、master、truncate、declare、create、\\、'、load_file、outfile等)進(jìn)行過(guò)濾處理。

此外,可以將所有的SQL語(yǔ)句都存放在存儲(chǔ)過(guò)程中,這樣不但可以避免SQL注入,還能提高一些數(shù)據(jù)庫(kù)的查詢性能。其缺點(diǎn)是不同的表有不同的查詢條件,需要編寫大量的存儲(chǔ)過(guò)程。因此,還可以用參數(shù)化SQL語(yǔ)句,DBMS在執(zhí)行時(shí),先對(duì)SQL語(yǔ)句進(jìn)行編譯,把參數(shù)作為查詢的一部分,而非執(zhí)行的命令,從而可以有效地避免SQL注入。ASP.NET中的一條標(biāo)準(zhǔn)的參數(shù)化SQL語(yǔ)句參考為:

SqlCommand cmd = new SqlCommand(“SELECT * FROM users WHERE name = @userName and pwd = @passWord “);

cmd.Parameters.Add(new SqlParameter("@userName", SqlDbType.VarChar) { Value = NameValue });

cmd.Parameters.Add(new SqlParameter("@passWord", SqlDbType.VarChar) { Value = PasswordValue })。

3.2 對(duì)敏感信息進(jìn)行數(shù)據(jù)脫敏后再存儲(chǔ)

利用明文存儲(chǔ)網(wǎng)站用戶的密碼等敏感信息顯然是不妥的,即便網(wǎng)站沒(méi)有被黑客攻擊,也存在由于網(wǎng)站管理員操作不當(dāng)?shù)葘?dǎo)致信息泄露的風(fēng)險(xiǎn)。如果將用戶敏感信息用某種加密算法進(jìn)行轉(zhuǎn)化處理,使用戶敏感數(shù)據(jù)變成無(wú)意義的字符序列,如表1所示,采用MD5對(duì)用戶密碼信息進(jìn)行數(shù)據(jù)脫敏,即使用戶信息被不小心泄露,也能將用戶的損失降至最低。

需要注意的是,即便對(duì)用戶敏感信息進(jìn)行了數(shù)據(jù)脫敏也不能保證信息的絕對(duì)安全。如果用戶設(shè)定的密碼過(guò)于簡(jiǎn)單或者太有規(guī)律,那么攻擊者可以通過(guò)試探的方式來(lái)暴力破解密碼。因此,在用戶設(shè)定密碼的時(shí)候,要引導(dǎo)他們使用不同字符組合、具有一定長(zhǎng)度、沒(méi)有明顯規(guī)律的強(qiáng)口令密碼。

3.3部署HTTPS網(wǎng)站

為了解決HTTP協(xié)議的安全缺陷,越來(lái)越多的站點(diǎn)采用安全套接字層超文本傳輸協(xié)議(HTTPS)部署網(wǎng)站[8]。HTTPS是在HTTP的基礎(chǔ)上加入了安全套接層(SSL協(xié)議)和安全傳輸層(TSL協(xié)議)。SSL協(xié)議主要通過(guò)數(shù)據(jù)加密技術(shù)保證通信過(guò)程中的安全及數(shù)據(jù)完整性,并依靠CA證書(shū)來(lái)驗(yàn)證服務(wù)器的身份。使用HTTPS方式與Web服務(wù)器通信的過(guò)程如圖3所示。

HTTPS協(xié)議的特點(diǎn):(1)需要到CA簽發(fā)機(jī)構(gòu)申請(qǐng)購(gòu)買證書(shū);(2)采用具有安全性的SSL加密傳輸協(xié)議傳送信息;(3)不再使用HTTP的默認(rèn)80端口,而使用443端口。

部署HTTPS網(wǎng)站不需要修改源程序代碼,只需要從CA簽發(fā)機(jī)構(gòu)購(gòu)買SSL證書(shū)安裝、配置在服務(wù)器上即可。按驗(yàn)證的類別劃分,SSL證書(shū)分為域名認(rèn)證、組織機(jī)構(gòu)認(rèn)證和擴(kuò)展認(rèn)證三種。

為了解決HTTP和HTTPS混合內(nèi)容訪問(wèn)的問(wèn)題,可以在程序代碼中添加JS腳本程序,用以自動(dòng)判斷當(dāng)前請(qǐng)求的URL所使用的協(xié)議,并強(qiáng)制轉(zhuǎn)換成HTTPS請(qǐng)求方式。JS腳本代碼為:

var url = window.location.href;

if (url.indexOf("https")<0){

url = url.replace("http:", "https:")

window.location.replace(url);

}

3.4 對(duì)XSS攻擊的防范

預(yù)防XSS攻擊可以在客戶端(瀏覽器)和Web服務(wù)器端進(jìn)行。在客戶端的防范工作主要是升級(jí)瀏覽器,更新漏洞補(bǔ)丁,采用插件對(duì)XSS進(jìn)行檢測(cè)并過(guò)濾。要做好Web服務(wù)器端XSS攻擊的防范工作,通常需要做好四點(diǎn)。

(1)對(duì)所有用戶提交的內(nèi)容進(jìn)行驗(yàn)證,這些內(nèi)容包括URL、HTTP頭、POST數(shù)據(jù)等,合理設(shè)定接收數(shù)據(jù)的長(zhǎng)度、格式、范圍,采用模式匹配的方法對(duì)數(shù)據(jù)進(jìn)行JavaScript關(guān)鍵字檢索和過(guò)濾。

(2)不要在頁(yè)面中引用任何不可信的第三方JavaScript代碼。例如,評(píng)論、分享、流量統(tǒng)計(jì)、文本編輯器等第三方JS插件代碼,都可能被攻擊者利用。

(3)對(duì)插入HTML標(biāo)簽的不可信數(shù)據(jù)進(jìn)行HTML Entity編碼。例如,對(duì)&、<、>、”、‘、/這6個(gè)字符進(jìn)行HTML Entity編碼,分別對(duì)應(yīng)轉(zhuǎn)換為&、<、>、"、'、/。

(4)對(duì)需要用戶Cookie的Web應(yīng)用,采用HttpOnly屬性的Cookie,防止攻擊者篡改、盜取用戶Cookie信息。

3.5其他必要措施

(1)采用全站靜態(tài)化存儲(chǔ)文檔,不但可以提高網(wǎng)站的響應(yīng)速度,而且還能降低被XSS攻擊的風(fēng)險(xiǎn)。

(2)對(duì)代碼進(jìn)行嚴(yán)格審計(jì),杜絕文件上傳漏洞。

(3)合理分配服務(wù)器文件的讀寫權(quán)限,禁用文件上傳目錄的運(yùn)行權(quán)限。

(4)定期做好網(wǎng)站數(shù)據(jù)庫(kù)備份,定期檢查網(wǎng)站LOG日志,發(fā)現(xiàn)異常情況及時(shí)查找修補(bǔ)漏洞。

(5)自定義錯(cuò)誤信息頁(yè),將customErrors的mode屬性設(shè)為On或者RemoteOnly,避免暴露程序代碼或數(shù)據(jù)庫(kù)表的細(xì)節(jié)。

4 結(jié)束語(yǔ)

信息技術(shù)的不斷革新讓網(wǎng)站朝著多元化、專業(yè)化、個(gè)性化的方向發(fā)展,也讓網(wǎng)站面臨各種前所未有的挑戰(zhàn)。網(wǎng)站信息安全工作是一項(xiàng)長(zhǎng)期性、基礎(chǔ)性、科學(xué)性的系統(tǒng)工程。只要人們加強(qiáng)對(duì)網(wǎng)站信息安全工作的重視,在技術(shù)層面和管理層面做一些必要的防范措施,就可以有效地保障網(wǎng)站數(shù)據(jù)的安全。本文對(duì)網(wǎng)站信息安全可能存在的各種問(wèn)題進(jìn)行了詳細(xì)系統(tǒng)的分析,闡述其原理,并針對(duì)各種信息安全問(wèn)題給出了切實(shí)可行的防范對(duì)策,以期對(duì)加強(qiáng)網(wǎng)站信息安全工作起到拋磚引玉的作用。

參考文獻(xiàn)

[1] 中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心. 《CNNIC:2020年第45次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》[EB/OL]. http://www.199it.com/archives/1041487.html.

[2] 劉岳,盛杰,尹成語(yǔ). Web應(yīng)用中SQL注入攻擊與防御策略研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2017(4):109-111.

[3] 黃嵩.拖庫(kù)撞庫(kù)對(duì)數(shù)據(jù)安全的威脅及應(yīng)對(duì)[J].信息與電腦(理論版), 2015(22):131-132.

[4] 姬鳴揚(yáng),李林森,李建華. P2P網(wǎng)貸用戶數(shù)據(jù)脫敏技術(shù)研究[J].通信技術(shù), 2017,50(2):321-327.

[5] 王鵬,季明,梅強(qiáng),等.交換式網(wǎng)絡(luò)下HTTP會(huì)話的劫持研究及其對(duì)策[J].計(jì)算機(jī)工程, 2007,33(5):135-137.

[6] 韋鯤鵬,葛志輝,楊波. PHP Web 應(yīng)用程序上傳漏洞的攻防研究[J].信息網(wǎng)絡(luò)安全, 2015(10):53-60.

[7] 左丹丹,王丹,付利華.一種XSS漏洞檢測(cè)方法的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件, 2016(07):278-281.

[8] 張寶玉.淺析HTTPS協(xié)議的原理及應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2016 (7):36-39.

[9] 趙樺箏,黃元浦,等.面向DDoS入侵檢測(cè)的報(bào)文特征提取方法[J].網(wǎng)絡(luò)空間安全,2020(3):24-29.

[10] 王楊,蔣巍,等.高安全需求的Web服務(wù)器群主動(dòng)防御體系研究[J].網(wǎng)絡(luò)空間安全,2019(6):1-4.

作者簡(jiǎn)介:

陳淑紅(1987-),男,山東日照人,河北工程大學(xué),碩士,山東省日照市莒縣文心高級(jí)中學(xué),中學(xué)二級(jí)教師;主要研究方向和關(guān)注領(lǐng)域:教育教學(xué)信息化、模式識(shí)別。

三原县| 仙居县| 陆良县| 西吉县| 偏关县| 平南县| 永丰县| 五峰| 平原县| 井陉县| 开封市| 吉木萨尔县| 桓台县| 双流县| 福泉市| 景泰县| 玉林市| 东方市| 县级市| 株洲县| 镇康县| 宜宾市| 启东市| 同心县| 黔江区| 凉城县| 云龙县| 金寨县| 辉南县| 青铜峡市| 西华县| 武定县| 磐安县| 咸丰县| 湾仔区| 庆安县| 商城县| 宜昌市| 白玉县| 丹江口市| 洮南市|