999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

三種常見的Web漏洞及其防護技術研究

2021-03-07 10:34:01江科
網(wǎng)絡安全技術與應用 2021年10期
關鍵詞:數(shù)據(jù)庫用戶

◆江科

三種常見的Web漏洞及其防護技術研究

◆江科

(川北醫(yī)學院 四川 637000)

本文對SQL注入攻擊漏洞、XSS漏洞、文件上傳漏洞三種常見的Web 漏洞的利用原理進行了分析,并以PHP開發(fā)環(huán)境為例,對其防范技術作了一定的研究和總結。以期軟件開發(fā)人員能在編碼過程中更加嚴謹,提高軟件產(chǎn)品的安全性,以便信息系統(tǒng)管理人員能了解基本的漏洞利用原理,有針對性地開展網(wǎng)絡安全工作。

SQL注入漏洞;XSS漏洞;文件上傳漏洞;PHP;網(wǎng)絡安全

1 引言

普通高校信息系統(tǒng)一般不存在關鍵信息基礎設施,來自較為豐富資源的威脅源的攻擊相對較為少見。通過我校網(wǎng)絡安全防護設備日志記錄分析得出,惡意攻擊者對我校Web系統(tǒng)較多的攻擊方式是通過軟件對目標系統(tǒng)進行掃描和嗅探,契機對發(fā)現(xiàn)的漏洞進行利用,其中,對SQL注入攻擊漏洞、XSS漏洞、文件上傳漏洞的嗅探頻次較高,雖然這三個漏洞的利用技術門檻較低,但危害較大。因此,本文以PHP開發(fā)環(huán)境為例,對這三種漏洞的原理分析和防護技術研究作一定的研究,以促進普通高校網(wǎng)絡安全管理工作的水平提升。

2 SQL注入攻擊漏洞

2.1 攻擊原理分析

SQL注入攻擊源于英文“SQL Injection Attack”,具有廣泛性、隱蔽性、門檻低、變種多、危害大等特點[1]。其原理是利用開發(fā)者拼接SQL語句的編碼漏洞,發(fā)送特殊的數(shù)據(jù)到數(shù)據(jù)庫執(zhí)行,以期到達繞過身份驗證、竊取和破壞數(shù)據(jù)、脫庫乃至取得控制器等非法目的。

以身份驗證為例,用戶在前端Html表單中填寫賬號和密碼,通過發(fā)送Http POST方法發(fā)送到服務器端進行驗證,服務器端使用獲取到的POST數(shù)據(jù)拼接SQL語句發(fā)送到數(shù)據(jù)庫進行查詢,如果存在匹配記錄則通過驗證,反正則不通過。

一個典型的存在SQL注入攻擊漏洞的SQL語句如下拼接:

Select * From Admin Where Name=’{$_POST[name]}’ and Password=’ {$_POST[password]}’

正常情況下,用戶輸入用戶名為admin,密碼為Password時,執(zhí)行的SQL語句為:

Select * From Admin Where Name=’ admin’ and Password=’ Password’

看上去邏輯沒有問題,但攻擊者可以發(fā)送一些特殊的數(shù)據(jù)即可輕松欺騙程序,比如把Password填寫為“any’ or ‘1=1”,則執(zhí)行的SQL語句為:

Select * From Admin Where Name=’admin’ and Password=’any’ or ‘1=1’

本例利用SQL 語句使用對稱單引號來限定文本值這一語法特性,在文本值中再插入兩個單引號,擾亂原有語法結構,增加SQL語句的條件值“or ‘1=1’”。很明顯,增加的條件值1=1恒定為True,因此無論Name和Password是什么值,整個條件值都是True,都能查詢到匹配記錄并通過身份驗證從而進入系統(tǒng),產(chǎn)生嚴重威脅。

SQL注入攻擊遠不止利用單引號這一方法:“#”、“%”、“l(fā)ike”等關鍵詞和函數(shù)等都可以被利用,尤其是函數(shù)注入將產(chǎn)生較大危害,其注入原理和本例類似,可以類推。

2.2 防范措施

SQL注入攻擊的防護總綱領就是一條:不信任任何客戶端發(fā)送的數(shù)據(jù)。在編碼過程中,對客戶端發(fā)送的數(shù)據(jù)進行層層檢測和過濾,確定合法后再發(fā)送到數(shù)據(jù)庫執(zhí)行,主要措施有以下4條:

(1)嚴格檢查和過濾輸入字符串

通常情況下,服務器端需要接受客戶端數(shù)據(jù)的值類型只會是一種或少數(shù)幾種,很少情況下需要任意形式的數(shù)據(jù)。因此,可以限定接收數(shù)據(jù)的值類型。比如只需要值類型為數(shù)字的數(shù)據(jù),可通過is_numeric()函數(shù)判斷,也可使用set_type()轉換,還可使用max()、int_val()等函數(shù)直接過濾;又比如字母,可使用ctype_alpha ()函數(shù)進行檢測,總之,經(jīng)過檢測和過濾的合法數(shù)據(jù)才進入程序的下一個流程。

(2)轉義

在數(shù)據(jù)檢查和過濾之后、發(fā)送到數(shù)據(jù)庫之前對數(shù)據(jù)進行轉義,有語法意義的特殊字符將被轉換為該字符的文本值,不作為語法處理,比如“’”轉義后為“”,“”才是單引號在SQL語句中的文本值。推薦使用各數(shù)據(jù)庫編程接口專門的轉義函數(shù)而不是php內置的addslashes()函數(shù)進行轉義,相對更完善和安全,比如使用PDO類的quote()方法。

(3)使用預處理語句

SQL注入漏洞普遍存在的根本原因是字符串拼接SQL語句的編碼方式極易發(fā)生數(shù)據(jù)檢查、過濾和轉義的疏忽。使用預處理語句則可規(guī)避此問題,本例經(jīng)改造后核心代碼如下:

$sth = $dbh->prepare(“Select * From Admin Where Name=? and Password=?”);

$sth->execute([$name,$password]);

預處理語句可理解為SQL 語句模板,預先準備好并使用占位標記“?”(存在多種形式)代替將要被執(zhí)行的真實數(shù)據(jù),當execute()方法執(zhí)行時,以參數(shù)形式綁定的數(shù)據(jù)將逐一取代對應的占位標記,最后發(fā)送到數(shù)據(jù)庫執(zhí)行。這種方式完全避免了字符串拼接,不僅程序可讀性強,而且數(shù)據(jù)庫接口會自動檢驗,阻止SQL注入,同一預處理語句多次執(zhí)行的性能也有提高,推薦開發(fā)人員使用。

(4)數(shù)據(jù)庫權限限定

給予Web系統(tǒng)能夠正常運行的數(shù)據(jù)庫賬號最小權限,作為函數(shù)式注入的最后防線。通常一般的Web系統(tǒng)只需要select、update、delete和insert等基本的數(shù)據(jù)庫權限,建議開發(fā)人員或數(shù)據(jù)庫管理員對給予Web系統(tǒng)的數(shù)據(jù)庫用戶或角色進行設置。

3 XSS漏洞

3.1 利用原理分析

XSS全稱為跨站腳本(Cross Site Scripting),為了和層疊樣式表(Cascading Style Sheets,CSS)區(qū)分,業(yè)內簡稱為XSS。XSS漏洞是Web應用的經(jīng)典漏洞,但直到現(xiàn)在,跨站腳本攻擊仍是許多Web應用的最大威脅[2]。其原理通過各種方法向目標Web頁面里插入腳本,當其他用戶瀏覽該頁面時,嵌入的腳本被執(zhí)行,達到惡意攻擊的目的。

在一個留言本的Web頁面上,它允許用戶留言,并可以被其他用戶看到。如果存在XSS漏洞,攻擊者可以留一段特殊的“言”:

于是每位瀏覽該頁面的用戶瀏覽器都會出現(xiàn)一個彈窗,并顯示hello word。當然這只是闡述原理的簡單示例,并不產(chǎn)生攻擊效果,但稍作深入就可以做更多事情,比如盜取身份信息:

thief.js核心攻擊代碼:

var ca=document.cookie;

script.src='http://example.com/ thief.php?ca='+ca;

簡單幾行代碼即可讀取用戶的cookie,傳送至攻擊者服務器進行收集,以進行下一步攻擊活動,這就是典型身份盜取攻擊。以此原理類推,XSS漏洞還會產(chǎn)生釣魚詐騙、網(wǎng)頁掛馬、垃圾信息發(fā)送、劫持用戶行為等諸多安全威脅。

3.2 防范技術

避免產(chǎn)生XSS漏洞的原則是控制數(shù)據(jù)輸入點和輸出點,編碼過程中對輸入和輸出的數(shù)據(jù)進行過濾和轉換,主要措施有以下5條:

(1)在數(shù)據(jù)輸入點的過濾和轉換與上文SQL漏洞防范技巧一致,注意輸入點的防護不僅僅在POST數(shù)據(jù)中,任何從客戶端發(fā)送的數(shù)據(jù)都可作為XSS攻擊使用。

(2)服務器端輸出轉換:對于完全沒有必要在頁面上執(zhí)行HTML和Script的代碼的應用場景,在服務器端使用htmlspecialchars()、htmlentities()或第三方RemoveXss()函數(shù)進行轉換后再輸出,確保沒有可執(zhí)行的腳本代碼輸出到客戶端。

(3)客戶端輸出轉換:對于確有必要輸出腳本代碼到客戶端執(zhí)行、開發(fā)JavaScript API等應用場景,在客戶端使用定義好的腳本函數(shù)進行過濾,如JS中的innerText()、textContent()、innerHTML()函數(shù)和jQuery中的text()函數(shù)。

(4)設置HTTP內容安全策略:內容安全策略(Content Security Policy,簡稱CSP)采用白名單作機制限制頁面可以包含哪些來源的內容,可在HTTP Header中發(fā)送或在HTML meta屬性中聲明。正確設置CSP后,瀏覽器會阻止非法來源的外部內容(如上例中的example.com),能夠緩解XSS攻擊。

(5)在Web服務器配置Cookie的HttpOnly屬性,起到在發(fā)生XSS攻擊防止Cookie被盜取的作用。

上述前3點是筆者推薦必須要做的事情,不可完全依賴于后兩點,因為用戶瀏覽器存在多種品牌和多個版本,不完全可信,攻擊者可以結合瀏覽器自身漏洞進行組合攻擊。

4 文件上傳漏洞

4.1 利用原理分析

很多網(wǎng)站都有文件上傳功能,如附件上傳、圖片上傳,攻擊者可利用網(wǎng)站自身的文件上傳功能,上傳木馬、病毒、后門程序等至服務器,并偽裝成可執(zhí)行或可解釋文件運行,造成信息竊取、破壞,結合其他漏洞就可以輕易獲得控制器。成熟的木馬、病毒、后門程序能在網(wǎng)絡上輕易獲取,利用文件上傳漏洞進行攻擊,上手難度低但威脅非常大,同樣需要引起高度重視。

4.2 防范技術

(1)文件擴展名檢查:對上傳文件的擴展名進行檢查,采用白名單機制,只允許需要的文件上傳,如:只允許上傳擴展名為jpg、png的文件,拒絕其他文件上傳。但部分老版本的操作系統(tǒng)存在空格和dot漏洞,老版本的Web服務器也存在解析漏洞,文件擴展名檢查可被繞過。

(2)Content-Type檢查:每種文件都有唯一的Content-Type,可對上傳文件的Content-Type檢查確定文件類型,達到只允許需要的文件上傳目的。但可以使用相關工具篡改文件的Content-Type,達到欺騙檢查程序的目的。

(3)限制Web服務器行為:配置Web服務器和解釋器,禁止上傳文件保存目錄下的文件被解釋器解釋,禁止特定文件的HTTP訪問權限,比如在PHP的doc_root或user_dir中排除掉上傳文件保存目錄,在Apache中Directory設置中禁止允許的上傳文件之外的文件被訪問。通過這兩點措施,即便非法文件上傳,也不能被訪問和被解釋,可較大程度減少威脅。

(4)限制目錄權限:通過服務器操作系統(tǒng)文件系統(tǒng)權限配置上傳文件保存目錄的權限為只允許讀取、寫入而不能運行,可以控制病毒木馬對操作系統(tǒng)的影響。

(5)安裝殺毒/威脅防護軟件并及時升級,對上傳的文件進行實時檢測和病毒查殺。

文件上傳漏洞的封堵較為復雜,上述5點不一定完全涵蓋,但在實際操作中不能遺漏其中之一。

5 結束語

本文介紹了三種最常見的Web 漏洞,對其原理進行了簡要的分析,并對軟件編碼中需要應用的防范技術進行了研討,希望軟件開發(fā)人員能在開發(fā)過程嚴格按規(guī)范編碼,做到邏輯嚴密、層層過濾,提高軟件產(chǎn)品的安全性,同時也希望信息系統(tǒng)管理人員能了解基本的漏洞利用原理,有針對性地開展網(wǎng)絡安全工作。

[1]王云,郭外萍,陳承歡.Web項目中的SQL注入問題研究與防范方法[J].計算機工程與設計,2010,31(05):976-978+1016.

[2]金濤,霍旭磊,王亞麗.XSS的攻擊利用與防護策略研究[J].網(wǎng)絡安全技術與應用,2021(01):14-16.

[3]武云蕾. Web應用的SQL注入測試工具的設計與實現(xiàn)[D].西安電子科技大學,2019.

[4]秦亞芬. 存儲型跨站腳本漏洞關鍵技術研究與實現(xiàn)[D].北京工業(yè)大學,2019.

川北醫(yī)學院2016年校級科研發(fā)展計劃項目

猜你喜歡
數(shù)據(jù)庫用戶
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 免费毛片在线| 中文精品久久久久国产网址| 亚洲精品第1页| 亚洲综合在线网| 亚洲性日韩精品一区二区| 2020国产在线视精品在| 婷婷伊人久久| 无码精油按摩潮喷在线播放| 91啦中文字幕| 亚洲欧美成人在线视频| 看你懂的巨臀中文字幕一区二区| 一区二区欧美日韩高清免费| 亚洲性影院| 午夜成人在线视频| 波多野结衣国产精品| 免费中文字幕在在线不卡| 91区国产福利在线观看午夜| 97se亚洲综合在线韩国专区福利| 久久久成年黄色视频| 国产成人调教在线视频| 亚洲福利网址| 国产女人在线观看| 亚洲丝袜第一页| vvvv98国产成人综合青青| 幺女国产一级毛片| 人妻出轨无码中文一区二区| 精品国产Av电影无码久久久| 欧美色伊人| 日本影院一区| 国产成人凹凸视频在线| 日韩在线视频网站| 欧美日韩成人在线观看| 日韩亚洲综合在线| 全部无卡免费的毛片在线看| 欧美黑人欧美精品刺激| 亚洲人精品亚洲人成在线| 亚洲一区波多野结衣二区三区| 中文无码日韩精品| 精品欧美一区二区三区在线| 成人午夜免费观看| 在线播放国产一区| 911亚洲精品| 67194在线午夜亚洲| 久久先锋资源| 久久精品欧美一区二区| 四虎精品黑人视频| 国产欧美精品一区aⅴ影院| 国产精品黑色丝袜的老师| 亚洲香蕉伊综合在人在线| 人妻丰满熟妇av五码区| 国产尤物视频在线| a级毛片毛片免费观看久潮| 欧美丝袜高跟鞋一区二区| 久久综合伊人77777| 日本午夜在线视频| 99在线视频免费| 亚洲成a∧人片在线观看无码| 欧美色视频网站| 国产清纯在线一区二区WWW| 一本二本三本不卡无码| 欧美www在线观看| 日本精品影院| 人妻熟妇日韩AV在线播放| 成人午夜在线播放| 四虎成人精品在永久免费| 在线观看91精品国产剧情免费| 香蕉网久久| 亚洲区视频在线观看| 色135综合网| 国产精品色婷婷在线观看| 91外围女在线观看| 国产三级视频网站| 国内精品久久久久久久久久影视| 男女男免费视频网站国产| 国产成人高清精品免费软件 | 老色鬼欧美精品| 亚洲精品自拍区在线观看| 精品国产成人高清在线| 亚洲欧洲日产国码无码av喷潮| 国产国语一级毛片在线视频| 欧美在线视频不卡第一页| 91人妻在线视频|