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

數據庫安全防護綜述及SQL注入基本原理

2020-09-10 13:06:11汪冰黃銀蓉
快樂學習報·教師周刊 2020年43期

汪冰 黃銀蓉

摘要:數據庫技術在計算機網絡和互聯網絡中起著至關重要的作用。在各種web應用場景下,都有數據庫技術參與。SQL Server、Access、Oracle、MySQL等一系列數據庫管理系統被廣泛使用。作為web應用結構中的存儲層,數據庫服務器通過web應用服務器與瀏覽器之間完成數據交互。在交互過程中經常會面對各種網絡安全風險,其中以SQL注入攻擊最為普遍。本文對數據庫安全基本要求、web應用中數據庫運轉原理進行論述,闡述了國內外對數據庫系統運行安全和數據庫系統信息安全的相關標準;以C/S模式為例,說明了web應用的三層架構。本文以SQL Server為例,列舉并實踐了幾種常見的SQL注入語句;利用自動注入工具SQLMap對特定網站進行SQL注入。本文以ASP等編程語言為例,簡單介紹了幾種行之有效并被廣泛使用的SQL注入防御手段。

關鍵詞:數據庫安全;web應用;SQL注入;SQL注入防御

1.數據庫安全基本要求及威脅來源

數據庫及其相關技術在快速發展的計算機、互聯網應用中起著至關重要的作用。幾乎所有常見的網站、web應用程序和移動終端應用程序都運用了數據庫及其相關技術。數據庫的定義是按照數據結構來組織、存儲和管理數據的倉庫。它于20世紀60年代出現并伴隨著計算機和互聯網技術地快速演變在20世紀90年代后期得到迅速發展。在其發展的早期,與數據庫安全相關的防護技術并未受到業界重視。但隨著計算機和互聯網的普及,大量合法或不合法的用戶涌入網絡當中,對網絡安全產生了巨大沖擊,于是業界開始關注網絡安全防護技術,而數據庫安全技術則屬于網絡安全防護技術當中十分重要的一個環節。

關于數據庫安全的定義,國內外有不同的定義。國外以C. P. Pfleeger 在“Security in Computing – Database Security. PTR,1997”中對數據庫安全的定義最具有代表性,被國內外許多教材、論文和培訓廣泛應用。他從以下方面對數據庫安全進行了描述:

(1)物理數據庫的完整性:數據庫中的數據不被各種自然的或物理的問題而破壞,如電力問題或設備故障等。

(2)邏輯數據庫的完整性:對數據庫結構的保護,如對其中一個字段的修改不應該破壞其他字段。

(3)元素安全性:存儲在數據庫中的每個元素都是正確的。

(4)可審計性:可以追蹤存取和修改數據庫元素的用戶。

(5)訪問控制:確保只有授權的用戶才能訪問數據庫,這樣不同的用戶被限制在不同的訪問方式。

(6)身份驗證:不管是審計追蹤或者是對某一數據庫的訪問都要經過嚴格的身份驗證。

(7)可用性:對授權的用戶應該隨時可進行應有的數據庫訪問。

我國在數據庫安全方面也有自己的定義,在《中華人民共和國公共安全行業標準GA/T389-2002》中“計算機信息系統安全等級保護數據庫管理系統技術要求”部分對數據庫安全的定義是:數據庫安全就是保證數據庫信息的保密性、完整性、一致性和可用性。保密性指保護數據庫中的數據不被泄露和未授權的獲取;完整性指保護數據庫中的數據不被破壞和刪除;一致性指確保數據庫中的數據滿足實體完整性、參照完整性和用戶定義完整性要求;可用性指確保數據庫中的數據不因人為的和自然的原因對授權用戶不可用。其中保密性、完整性及可用性與信息安全三要素“CIA”相一致。

在實際生產應用過程中,數據庫一般由數據庫管理系統來統一管理和控制,用戶可以通過數據庫管理系統訪問數據庫,數據庫管理員也可以通過它進行數據庫的維護工作。常見的SQL Server、Access、Oracle、MySQL等都屬于數據庫管理系統。而我們所討論的數據庫安全技術主要就是針對數據庫管理系統的。數據庫管理系統的安全既要考慮數據庫管理系統的安全運行保護,也要考慮對數據庫管理系統中所存儲、傳輸和處理的數據信息的保護(包括以庫結構形式存儲的用戶數據信息和以其他形式存儲的由數據庫管理系統使用的數據信息)。由于攻擊和威脅既可能是針對數據庫管理系統運行的,也可能是針對數據庫管理系統中所存儲、傳輸和處理的數據信息的保密性、完成性和可用性的,所以對數據庫管理系統的安全保護的功能要求,需要從系統安全運行和信息安全保護兩方面綜合進行考慮。系統運行安全和系統信息安全即是數據庫安全所包含的兩層含義。系統運行安全一般面臨著數據庫管理系統本身可用性被破壞的威脅。網絡中的不法分子通過各種滲透技術入侵服務器,通過病毒、木馬等手段致使系統無法正常運轉,從而造成破壞性的后果;系統信息安全則主要包含保密性和完整性兩個方面的內容。網絡中的不法分子通過注入技術取得數據庫中的各種用戶數據,甚至可以通過代碼控制對數據進行惡意刪除和修改,嚴重破壞數據信息的安全。

數據庫一般不會獨立存在于互聯網和計算機網絡之中,而是通常作為web應用系統和web應用程序的后端驅動技術而存在。常見的web應用系統有辦公自動化系統、電子郵件系統、新聞網站、電子商城等;而常見的web應用程序則更為普遍,我們的移動終端上琳瑯滿目的應用軟件后端幾乎都有數據庫技術在支撐其運轉。圖1說明了web應用和數據庫服務器之間的簡單交互關系(這里只針對C/S模式):

從圖1可以看到,用戶在使用各種web應用系統或web應用程序的時候,首先通過終端設備向web應用服務器發起數據請求,web應用服務器收到該請求以后再向數據服務器發起數據請求,數據服務器收到請求后返回響應數據至web應用服務器,web應用服務器收到響應數據后再反饋給終端設備。整個交互過程時間非常短暫,用戶一般不會察覺。但在交互過程中存在多處安全威脅,因此通信運營商和各類互聯網服務提供商必須在關鍵節點做好安全防護工作,避免發生網絡信息安全事故。而在眾多安全防護工作中,數據庫安全尤為重要,在圖中的網絡環境下,我們可以將數據庫安全分為3個層次,分別為網絡安全、服務器安全和數據庫本身的安全。網絡安全側重于防護數據交互過程中的網絡嗅探、跨站腳本攻擊、緩沖區溢出攻擊、DDOS攻擊等;服務器安全側重于操作系統本身的安全,防護手段主要包括安裝正版操作系統、及時升級補丁、嚴格控制管理員賬戶權限、在關鍵節點架設防火墻等;數據庫安全側重于通過代碼審計、數據加密、數據備份、用戶權限控制等方式避免網絡不法分子對數據運行安全和數據信息安全造成破壞。

在數據庫安全面臨的眾多威脅中,SQL注入是最為典型、破壞性最強的攻擊方式。在論述SQL注入以前,先對SQL進行一個簡單介紹。SQL最早源于1974年IBM公司圣約瑟研究室研制的大型關系數據庫管理系統System R,其中包括了一套規范的數據庫語言——SEQUEL(Structured English Query Language),后于1980年正式更名為SQL。SQL按照功能一般分為四大類,分別是查詢語言(Data Query Language,DQL)、數據操作語言(Data Manipulation Language,DML)、數據定義語言(Data Definition Language,DDL)和數據控制語言(Data Control Language,DCL),詳見圖2:

2.Web應用中的數據庫運用原理

從圖1中我們已經簡單了解了web應用的基本架構。主要分為表示層、邏輯層和存儲層(數據層)。展示web頁面的瀏覽器就位于表示層。表示層是web應用的最高層,一般由用HTML(HyperText Markup Language,超文本標記語言)等語言編寫的便于用戶查看的頁面組成。其主要作用就是與用戶進行交互,或者說使用便于用戶理解、查看的方式將后臺數據呈現給用戶;邏輯層位于表示層與數據層之間,在數據交換中起承上啟下的作用,是三層架構中的核心部分,其主要功能是負責在瀏覽器和后臺數據庫之間建立交互關系,將瀏覽器送來的請求指令進行加工處理后發送至數據庫,同時將數據庫反饋回來的數據信息加工處理后傳遞給瀏覽器;數據層一般包括數據庫服務器、存儲數據的存儲設備和數據信息本身,所以數據層通常也被叫做存儲層。數據層的主要功能是負責數據的存儲和檢索,一般數據庫服務器支持訪問數據庫文件、二進制文件、文本文檔或是XML文檔。圖3將圖1進行了細化,詳細展示了web應用的工作原理:

當用戶通過瀏覽器訪問某一個網站時,瀏覽器會將用戶輸入的URL發送至web應用服務器,web應用服務器將URL進行編譯處理,生成特定的SQL語句并發送至數據庫服務器執行,之后數據庫服務器返回數據信息至web應用服務器,web應用服務器再將數據信息加工處理為HTML并遞送至瀏覽器呈現給用戶。下面看一個實例:

我們通過火狐瀏覽器訪問了URL為http://www.aodiweixiu.com/about.asp?id=1的網頁,在這段URL中除了.com的域名外,后面還出現了“asp?id=1”這串代碼,這其中就涉及到瀏覽器和后臺服務器之間的參數傳遞。通過這個參數輸入節點,我們就可以通過構造特定的SQL語句對該網站的后臺數據庫進行手工注入,或者直接使用自動注入工具進行SQL注入,以破壞該網站數據信息的“CIA”三要素。

3.QL注入的防御及數據庫訪問控制

SQL注入攻擊嚴重威脅著數據庫的安全,因此,在web應用程序設計和編寫的時候必須采用必要的防護手段,避免數據庫中的重要信息被網絡中的不法分子竊取。我們可以通過以下三種常見方法對SQL注入攻擊進行防御。

3.1輸入驗證防御。

輸入驗證一般分為白名單驗證和黑名單驗證兩種方式。白名單驗證首先建立起白名單規則,即確定包含在規則內的數據全部通過,否則便丟棄或拒絕訪問;黑名單驗證正好相反,首先建立黑名單規則,在規則內的數據禁止通過。白名單驗證的防護強度一般高于黑名單驗證,在較為重要的數據庫上都應該建立白名單規則。

代碼實現的功能非常簡單,就是對用戶輸入的用戶名和密碼的數據類型和字符串長度進行校驗。如果用戶輸入了不滿足校驗要求的數據,比如“and1=1”、“'or‘1’=’1’”等常見的登錄SQL注入代碼,就會提示錯誤并拒絕請求。這樣就避免了帶有SQL注入功能的SQL語句被送至數據庫服務器中執行,即在數據庫服務器以外就將不合法的輸入拒絕掉。

3.2代碼過濾防御。

SQL注入產生的根本原因是不法用戶修改了程序員預先設計好的SQL語句結構。根據前文的內容可以發現,SQL注入語句基本都包含得有各種非法字符串、數字和符號。如果我們通過編寫特定代碼,將用戶提交的數據表單中不合法的內容過濾掉,即可有效避免SQL注入攻擊。但是,在過濾的時候必須遵循一定的原則,不能錯將原本合法的SQL語句中的字符也過濾掉,否則將無法實現web應用程序的基本功能。比如在所有SQL注入中都存在“空格”符號,但是卻不能簡單粗暴地把用戶提交的數據中的空格都過濾掉,因為在英文字符串中,空格本身就是合法輸入的一部分。我們通常的做法是用“{#space}”來替換用戶輸入的空格,在瀏覽器呈現數據之前再進行反替換。

4.結束語

本文就數據庫安全基本要求、SQL注入的基本原理和防護手段進行了討論。SQL語句作為關系型數據庫的核心執行代碼,長期以來都面臨這巨大的網絡安全挑戰,網絡安全從業人員必須緊隨時代發展趨勢和不斷變化的安全需求,不斷推進數據庫安全性的提升。

參考文獻:

[1] HE Guiying, ZHOU jie, WANG lv.Database Security Technology. (2017)321740.

[2] Abraham Silberschatz, Henry F.Korth, S.Sudarshan. Database System Concepts.01-2010-3824.

[3] Ma jun, Duan xinglin. Analysis and prevention of SQL injection in Web application system.1009-2552(2015) 08-0071-0。10.13274 /j. cnki. hdzj.2015.08.019.

[4] Wu Pufeng, Zhang yuqing. An Overview of Database Security. 1000—3428(2006)12—0085—04。TP309.2.2006-6.

(廣安職業技術學院)

主站蜘蛛池模板: 国产精品天干天干在线观看| 国产欧美日韩专区发布| 国产午夜精品鲁丝片| 亚洲无码高清免费视频亚洲 | 国产在线日本| 国产欧美日韩一区二区视频在线| 熟女视频91| 亚洲午夜天堂| 青青青草国产| 伊人色在线视频| 国产欧美日韩综合一区在线播放| 精品国产一区91在线| 91麻豆久久久| 国产欧美视频在线观看| 日韩不卡免费视频| 亚洲天堂精品在线观看| 亚洲最大情网站在线观看 | 激情综合激情| 色天天综合| 国产另类乱子伦精品免费女| 制服丝袜无码每日更新| 精品乱码久久久久久久| 欧美黄网站免费观看| 丝袜美女被出水视频一区| 丁香婷婷激情网| 午夜老司机永久免费看片| 国产高清色视频免费看的网址| 国产精品人莉莉成在线播放| 国产成本人片免费a∨短片| av一区二区三区高清久久| 亚洲va在线观看| 亚洲成aⅴ人在线观看| 啊嗯不日本网站| 青草视频久久| 欧美不卡视频一区发布| 国产JIZzJIzz视频全部免费| 国产九九精品视频| 欧美性精品| 伊人五月丁香综合AⅤ| 亚洲AV无码久久精品色欲| 亚洲三级a| 一本二本三本不卡无码| 欧美亚洲综合免费精品高清在线观看 | 欧美在线一二区| 2021国产乱人伦在线播放| 在线中文字幕日韩| 茄子视频毛片免费观看| 欧美日韩国产精品va| 国产精品手机在线播放| 亚洲91在线精品| 亚洲综合香蕉| 亚洲欧美自拍中文| 中美日韩在线网免费毛片视频| 麻豆国产精品| 欧美激情视频一区| 在线观看国产黄色| 亚洲成在线观看| 91精品亚洲| 国产99免费视频| 欧美在线视频不卡第一页| 亚洲中文无码av永久伊人| 国产日韩丝袜一二三区| 五月婷婷综合网| 看国产毛片| 激情无码视频在线看| 国产成人高清亚洲一区久久| 国产女人水多毛片18| 超碰aⅴ人人做人人爽欧美 | 永久天堂网Av| 国产精品亚洲日韩AⅤ在线观看| 高清国产va日韩亚洲免费午夜电影| 欧美福利在线播放| 美女无遮挡免费视频网站| 免费一级成人毛片| v天堂中文在线| 亚洲第一成年人网站| 免费观看成人久久网免费观看| 狠狠色噜噜狠狠狠狠奇米777| 欧美中文字幕在线二区| 成人国产精品网站在线看| 欧美国产精品不卡在线观看| 欧美一级在线|