專利名稱:一種基于網絡隔離結構的網站數(shù)據防篡改方法
技術領域:
本發(fā)明涉及一種基于網絡隔離結構的網站數(shù)據防篡改方法,通過利用網絡隔離思想及單向的數(shù)據庫同步技術,實現(xiàn)對網站動態(tài)內容的保護,屬于信息安全技術領域。
背景技術:
由于Web應用系統(tǒng)的復雜性及Web服務器軟件版本的多樣性,網絡系統(tǒng)漏洞層出不窮,而傳統(tǒng)防火墻、入侵檢測手段無法有效防范黑客利用軟件漏洞獲得網站管理權限后對網站內容所做的篡改,各種網頁防篡改系統(tǒng)應運而生,目前所使用的網頁防篡改系統(tǒng)技術有網頁特征校驗這種方式首先通過某種算法,獲得網頁原始特征值,再通過人工或程序跟蹤對比網頁特征值的變化,一旦和原始值不同,即判斷網頁內容發(fā)生了變化,被惡意修改。這種技術目前使用較少,一方面原因是隨著網站內容的增多,網頁文件也越來越多, 通過逐一比較網頁特征值所消耗的資源也越來越多;另一方面,由于動態(tài)內容的廣泛應用, 用戶所獲取的網頁內容大多是通過資源數(shù)據庫及某些固定頁面動態(tài)生成的,這使得網頁特征的獲得變得不可能?;诓僮飨到y(tǒng)的文件保護技術利用操作系統(tǒng)底層驅動,通過事件觸發(fā)方式來監(jiān)控文件內容是否被修改。這一技術與第一種技術的區(qū)別在于將隔時網頁校驗或人工對網頁的校驗轉為利用操作系統(tǒng)本身的事件觸發(fā)機制,通過從操作系統(tǒng)層監(jiān)控文件修改行為,可以極大地降低系統(tǒng)的資源消耗,有效提高對非法篡改行為的監(jiān)控效率。專利“一種防止網頁被篡改的系統(tǒng)及方法”(專利號CN101778137),專利“基于操作系統(tǒng)底層防發(fā)布文件篡改的網頁安全發(fā)布系統(tǒng)”(專利號CN1349163),專利“驅動級網站防篡改架構”(專利號CN201054604),專利“基于前置網關的頁面防篡改方法和系統(tǒng)”(專利號CN102176722)都是基于以上兩種思路提出的防止網站內容被非法篡改的不同方法。范建華、宋云波等發(fā)表在《成都信息工程學院學報》2009年第24卷第四期的“一種基于E-Key及Web頁面監(jiān)控的網站防篡改機制研究” 一文主要增加了對管理人員身份的認證,保證了管理人員修改系統(tǒng)設置時的安全性。在防止網站內容篡改方面的思想與前面總結的類似。上述網站防篡改系統(tǒng)無法應對諸如成績查詢、考分查詢、違章信息查詢等數(shù)據查詢類的網站,由于大量數(shù)據資源保存在數(shù)據庫中,該類網站防篡改系統(tǒng)無法對保存在數(shù)據庫中的數(shù)據進行保護。近年來,出現(xiàn)過多起針對這一類型網站的攻擊行為,犯罪分子采取黑客手段,入侵國家級教育網站和多所高校網站,篡改證書號碼數(shù)據庫,添加自己制作的假證書的編號。由于在正規(guī)網站上能夠查詢到證書號,這些假證就成為了有案可查的“真證書”, 從而達到牟利的目的
發(fā)明內容
本技術方案所述一種基于網絡隔離結構的網站數(shù)據防篡改方法,用于實現(xiàn)對使用動態(tài)網頁技術的網站的防篡改保護。通過劃分不同的安全級別網絡,將保存網站數(shù)據的數(shù)據庫服務器置于高安全級別網絡中,并將數(shù)據庫內容單向發(fā)布到與互聯(lián)網相連的網絡,即低安全級別網絡的數(shù)據庫服務器中,有針對性地保護與互聯(lián)網相連的低安全級別網絡中的網站數(shù)據,該方法可以有效防止諸如SQL注入等針對數(shù)據庫的攻擊,確保數(shù)據安全。所述防篡改保護是指針對惡意用戶非法獲取網站數(shù)據庫管理權限后修改所述網站數(shù)據庫數(shù)據內容的一種防止非授權修改保護,所述網站數(shù)據防篡改保護方法是在一個由內網、網站數(shù)據防篡改系統(tǒng)以及外網三者依次相連而構成的網絡中,依次按以下步驟實現(xiàn)的步驟(I),構建一個所述的網站數(shù)據防篡改網絡,其中內網,由一個具有較高安全級別的內網網站數(shù)據庫以及一個向所述內網網站數(shù)據庫提交數(shù)據的網站后臺管理服務器構成,其中內網網站數(shù)據庫,設有內網網站數(shù)據表和增量數(shù)據表,其中內網網站數(shù)據表內建一個事件觸發(fā)器,當所述內網網站數(shù)據表中的數(shù)據變化時, 該事件觸發(fā)器把變化的數(shù)據寫入增量數(shù)據表中,增量數(shù)據表,存儲所述事件觸發(fā)器捕獲的內網網站數(shù)據庫表中的數(shù)據變化信息, 所述增量數(shù)據表包括如下字段更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據、 獲取數(shù)據操作標識和數(shù)據唯一性標識,所述增量數(shù)據表中的更新時間、獲取時間、SQL命令、 內網網站數(shù)據表變化數(shù)據和數(shù)據唯一性標識字段內容構成增量數(shù)據,其中 更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間, 獲取時間所述網站數(shù)據防篡改系統(tǒng)中內網主機的數(shù)據獲取模塊訪問所述增量數(shù)據表,并保存所訪問到的數(shù)據記錄的時間,· SQL命令所述網站后臺管理服務器提交數(shù)據時所執(zhí)行的操作, 內網網站數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的內網網站數(shù)據表中變化的數(shù)據, 獲取數(shù)據操作標識標識網站數(shù)據防篡改改系統(tǒng)中的數(shù)據獲取模塊,是否成功獲得所要訪問的數(shù)據記錄,包括“未獲取”、“獲取中”和“已獲取”三種狀態(tài), 數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出,MD5算法的輸入參數(shù)由以下字段中的字符串構成“所述更新時間+所述SQL命令+所述內網網站數(shù)據表變化數(shù)據”,以標識所述增量數(shù)據的唯一性, 外網,由一個具有較低安全級別的外網網站數(shù)據庫以及一個外網Web服務器構成,其中外網網站數(shù)據庫,是所述的外網Web服務器中動態(tài)內容存儲介質,設有待更新數(shù)據表、外網網站數(shù)據表以及待校驗增量數(shù)據表,其中待更新數(shù)據表,包括如下字段更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據、發(fā)布數(shù)據操作標識和數(shù)據唯一性標識,其中 更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間, 獲取時間所述數(shù)據獲取模塊獲得該條數(shù)據的時間,· SQL命令所述網站后臺管理系統(tǒng)提交數(shù)據的操作,
內網網站數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的內網網站數(shù)據表中變化的數(shù)據, 發(fā)布數(shù)據操作標識標識網站數(shù)據防篡改系統(tǒng)中外網主機的數(shù)據發(fā)布模塊是否成功發(fā)布該條數(shù)據記錄,包括“未發(fā)布”、“發(fā)布中”和“已發(fā)布”三種狀態(tài), 數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出,外網網站數(shù)據表,設有事件觸發(fā)器,當所述外網網站數(shù)據表中的數(shù)據變化時,該事件觸發(fā)器把變化的數(shù)據寫入待校驗增量數(shù)據表,待校驗增量數(shù)據表,存儲所述事件觸發(fā)器捕獲的外網網站數(shù)據庫表中的數(shù)據變化信息,所述待校驗增量數(shù)據表包括如下字段更新時間、SQL命令、外網網站數(shù)據表變化數(shù)據和原始數(shù)據唯一性標識,其中 更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間,· SQL命令所述網站后臺管理系統(tǒng)提交數(shù)據的操作, 外網網站數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的外網網站數(shù)據表中變化的數(shù)據, 原始數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出,網站數(shù)據防篡改系統(tǒng),設有內網主機,外網主機以及連接所述內網主機和外網主機以便所述增量數(shù)據由所述內網主機向外網主機單向發(fā)送的相互連接的內網主機通訊卡、 外網主機通訊卡,其中內網主機,設有數(shù)據獲取模塊和數(shù)據變化監(jiān)測模塊,其中數(shù)據獲取模塊,設有內網網站數(shù)據庫所述增量數(shù)據表的訪問權限,還設有所述內網網站數(shù)據表數(shù)據變化消息的輸入端、所述增量數(shù)據表內數(shù)據記錄查詢命令的輸出端、 所述增量數(shù)據的輸入端以及外網網站數(shù)據庫初始化命令的輸出端,還有把所述增量數(shù)據文件發(fā)往所述外網通訊卡的增量數(shù)據文件輸出端,獲取內網網站數(shù)據表全部數(shù)據記錄命令的輸出端以及所述內網網站數(shù)據表數(shù)據的輸入端,數(shù)據變化監(jiān)測模塊,設有所述內網網站數(shù)據表數(shù)據變化的查詢命令輸出端,數(shù)據變化消息的輸入端以及內網網站數(shù)據表數(shù)據變化消息的輸出端,外網主機,設有數(shù)據更新模塊、數(shù)據發(fā)布模塊和數(shù)據防篡改模塊,其中數(shù)據更新模塊,設有對所述外網網站數(shù)據庫內待更新數(shù)據表的訪問權限,還設有接收來自所述數(shù)據獲取模塊發(fā)送的增量數(shù)據文件的輸入端,所述增量數(shù)據文件為增量數(shù)據的文件存儲形式,還設有請求數(shù)據發(fā)布命令的輸出端以及發(fā)往所述待更新數(shù)據表的增量數(shù)據輸出端,數(shù)據發(fā)布模塊,設有對所述外網網站數(shù)據表的訪問權限,還設有所述外網網站數(shù)據庫初始化命令的輸入端,請求數(shù)據發(fā)布命令的輸入端,發(fā)布數(shù)據的輸出端,所述發(fā)布數(shù)據是指根據所述待更新數(shù)據表中SQL命令字段及內網網站數(shù)據表變化數(shù)據字段中的內容, 對所述外網網站數(shù)據表執(zhí)行相應的SQL命令,以及外網網站數(shù)據表操作命令輸出端,控制數(shù)據發(fā)布輸入端,數(shù)據記錄唯一性標識輸出端,數(shù)據防篡改模塊,設有對外網網站數(shù)據庫的管理權限,對所述待校驗增量數(shù)據表訪問權限,還設有控制數(shù)據發(fā)布的命令輸出端,所述數(shù)據唯一性標識的輸入端,管理外網網站數(shù)據庫的命令輸出端,所述外網網站數(shù)據庫管理信息的輸入端,所述外網網站數(shù)據表數(shù)據變化的查詢命令輸出端,所述待校驗增量數(shù)據表中數(shù)據記錄輸入端,所述待校驗增量數(shù)據表內數(shù)據記錄查詢命令的輸出端,以及終止外網網站數(shù)據庫服務的輸出端,并依次按以下步驟進行防篡改保護A :外網網站數(shù)據庫用戶保護a:在完成所述外網網站數(shù)據表中的事件觸發(fā)器及對外網網站數(shù)據表的訪問權限設置后,查詢外網網站數(shù)據庫中的所有用戶,密碼,角色,并將“用戶名+密碼+角色”字符串作為MD5算法的參數(shù),計算用戶信息特征值,并保持該特征值Mbase,當修改所述外網網站數(shù)據庫用戶權限設置時,將更新Mbase取值,b:定時查詢外網網站數(shù)據庫中的所有用戶,密碼及其角色,并依據所述MD5算法計算用戶權限特征值Νμ1,c :對比Nral和Mbase,二者一致表示所述外網網站數(shù)據庫安全,不一致表示所述外網網站數(shù)據庫中用戶,密碼或角色發(fā)生了變化,數(shù)據庫可能被入侵,告警,并向外網網站數(shù)據庫提出終止服務的請求,B :數(shù)據防篡改a:所述數(shù)據防篡改模塊定時查詢所述待校驗增量數(shù)據表,檢測到待校驗增量數(shù)據表中數(shù)據記錄變化后,判斷是否從所述數(shù)據發(fā)布模塊收到了新的數(shù)據唯一性標識若沒有,則表明外網網站數(shù)據表中出現(xiàn)了非授權修改,便告警發(fā)出控制命令,命所述數(shù)據發(fā)布模塊發(fā)出刪除命令,刪除所述外網網站數(shù)據表中新增加的數(shù)據記錄,同時終止外網網站數(shù)據庫服務,若所述數(shù)據發(fā)布模塊發(fā)送的數(shù)據唯一性標識與查詢結果中所述待校驗增量數(shù)據表相應數(shù)據記錄的原始數(shù)據唯一性標識一致,表示數(shù)據發(fā)布模塊發(fā)布了帶有該唯一性標識的數(shù)據信息,則執(zhí)行步驟b,b :將待校驗增量數(shù)據表對應數(shù)據記錄的如下字段內容構成一字符串作為MD5算法的輸入參數(shù)“所述更新時間+所述SQL命令+所述內網網站數(shù)據表變化數(shù)據”,用MD5算法計算該外網網站數(shù)據表變化數(shù)據的唯一性標識,并與待校驗增量數(shù)據表對應數(shù)據記錄的所述原始數(shù)據唯一性標識字段中的內容進行對比,如果二者一致,則不向數(shù)據發(fā)布模塊發(fā)布所述控制命令,若兩者不一致,則告警,向所述數(shù)據發(fā)布模塊發(fā)布所述控制命令,令其刪除所述外網網站數(shù)據表中的新增數(shù)據記錄,并向外網網站數(shù)據庫提出終止服務的請求,步驟(2),所述網站數(shù)據防篡改系統(tǒng)依次按以下步驟完成所述內網網站數(shù)據庫和外網網站數(shù)據庫的數(shù)據初始化同步,步驟(2. I),所述數(shù)據獲取模塊向所述數(shù)據發(fā)布模塊發(fā)送“外網網站數(shù)據庫初始化”命令,步驟(2. 2),所述數(shù)據發(fā)布模塊依所設置的訪問權限連接所述外網網站數(shù)據表, 若存在數(shù)據,便清除,否則,執(zhí)行步驟(2. 3),步驟(2. 3),所述數(shù)據獲取模塊依所設置的權限連接內網網站數(shù)據表,執(zhí)行SQL中的“Select…from…”命令獲得所述內網網站數(shù)據表中的所有數(shù)據,步驟(2. 4),所述數(shù)據獲取模塊把步驟(2. 3)所獲得的數(shù)據以“外網網站數(shù)據庫更新命令+表數(shù)據”格式形成數(shù)據文件發(fā)送給所述數(shù)據發(fā)布模塊,步驟(2. 5),所述數(shù)據發(fā)布模塊依據收到的所述增量數(shù)據文件中的內容調用SQL命令實現(xiàn)外網網站數(shù)據表的更新;步驟(3),依次按以下步驟實現(xiàn)外網網站數(shù)據庫的數(shù)據更新,步驟(3. 1),網站管理人員通過所述網站后臺管理系統(tǒng)提交數(shù)據到內網網站數(shù)據表,用所述事件觸發(fā)器將內網網站數(shù)據表變化數(shù)據發(fā)送至所述增量數(shù)據表,步驟(3. 2),所述數(shù)據變化監(jiān)測模塊查詢到所述增量數(shù)據表中的數(shù)據記錄發(fā)生變化后,通知所述數(shù)據獲取模塊訪問所述增量數(shù)據表,獲取增量數(shù)據依次查詢所述增量數(shù)據表中的所有數(shù)據記錄,予以分別處理若所述增量數(shù)據表為空,結束數(shù)據獲取過程,若存在數(shù)據記錄,則檢查數(shù)據記錄的獲取數(shù)據操作標識字段,如狀態(tài)為“已獲取”,則表示該條數(shù)據記錄已被所述數(shù)據獲取模塊獲得,便直接刪除該條數(shù)據記錄,若狀態(tài)為“未獲取”,將標識更新為“獲取中”,并將所述獲取數(shù)據操作標識狀態(tài)為 “獲取中”的數(shù)據記錄依據數(shù)據文件存儲格式轉換為數(shù)據文件,以字段“更新時間+SQL命令 +內網網站數(shù)據表變化數(shù)據”中的內容構建字符串作為輸入參數(shù),通過MD5算法計算數(shù)據唯一性標識,更新所述獲取數(shù)據操作標識字段并設置其為“已獲取”狀態(tài),刪除操作標識為“已獲取”的數(shù)據記錄,若狀態(tài)為“獲取中”,表明該數(shù)據記錄未完整獲取,則繼續(xù)獲取,步驟(3. 3),在收到步驟(3. 2)形成的所述數(shù)據文件后,所述數(shù)據更新模塊把這些數(shù)據更新到所述待更新數(shù)據表中,并將發(fā)布數(shù)據操作標識字段標識為“未發(fā)布”,并通知所述數(shù)據發(fā)布模塊有數(shù)據需要發(fā)布,步驟(3. 4),所述數(shù)據發(fā)布模塊在收到步驟(3. 3)中所述標識有“未發(fā)布”的數(shù)據記錄時,便向所述外網網站數(shù)據表發(fā)布所述數(shù)據信息,所述數(shù)據發(fā)布模塊依次查詢所述待更新數(shù)據表中的所有數(shù)據記錄,予以分別處理若所述待更新數(shù)據表為空,結束數(shù)據發(fā)布過程,若所述待更新數(shù)據表存在數(shù)據記錄,則檢查數(shù)據記錄的發(fā)布數(shù)據操作標識字段, 如狀態(tài)為“已發(fā)布”,則表示該條數(shù)據記錄已發(fā)布到所述外網網站數(shù)據表中,便直接刪除該條數(shù)據記錄,若狀態(tài)為“未發(fā)布”,將標識更新為“發(fā)布中”,并將發(fā)布數(shù)據操作標識狀態(tài)為“發(fā)布中”的數(shù)據記錄以字段更新時間,SQL命令,內網網站數(shù)據表變化數(shù)據中的內容構建SQL 命令,提交到所述外網網站數(shù)據表中,刪除操作標識為“已發(fā)布”的數(shù)據記錄,若狀態(tài)為“發(fā)布中”,表明該數(shù)據記錄未完整發(fā)布,則繼續(xù)發(fā)布,步驟(3. 5),數(shù)據防篡改模塊在檢測到待校驗增量數(shù)據表中數(shù)據變化后,執(zhí)行數(shù)據確認操作,驗證數(shù)據發(fā)布的準確性,結束。所述數(shù)據發(fā)布模塊要依次查詢所述待更新數(shù)據表中的所有數(shù)據記錄若發(fā)布數(shù)據操作標識狀態(tài)為“已發(fā)布”,則直接刪除該條數(shù)據記錄,若發(fā)布數(shù)據操作標識狀態(tài)為“未發(fā)布”,則置為“發(fā)布中”,若發(fā)布數(shù)據操作標識狀態(tài)為“發(fā)布中”,則置為“已發(fā)布”狀態(tài),并直接刪除該條數(shù)
據記錄。所述數(shù)據防篡改模塊定時查詢系統(tǒng)設置及所述待校驗增量數(shù)據表中數(shù)據記錄,并
10在檢測到系統(tǒng)設置及數(shù)據變化時啟動相應操作。對比現(xiàn)有技術,本發(fā)明有益效果在于,傳統(tǒng)網站數(shù)據防篡改方法均針對網頁靜態(tài)信息的防護,而用戶瀏覽網頁所查看到的信息,基本都是以網頁形式展示的后臺數(shù)據庫中的數(shù)據。對后臺數(shù)據庫的防護手段基本都是基于操作系統(tǒng)本身的安全加固,這種系統(tǒng)層的加固無法應對針對數(shù)據庫的諸如SQL注入、提權、利用數(shù)據庫系統(tǒng)本身漏洞等攻擊行為??紤]到對網站后臺數(shù)據庫的綜合防護及自動恢復機制,本發(fā)明提出了一種基于隔離結構的網站數(shù)據防篡改方法,通過劃分不同的安全級別網絡,實現(xiàn)內、外網兩個不同安全級別網絡間數(shù)據的單向安全發(fā)布,同時通過數(shù)據防篡改機制監(jiān)測數(shù)據庫變化,及時發(fā)現(xiàn)低安全級別網絡內數(shù)據庫的非正常變化,從而確保網站數(shù)據的安全。
圖I為基于網絡隔離結構的網站數(shù)據防篡改方法的應用框架圖2為內網網站數(shù)據表中的新數(shù)據添加至增量數(shù)據表的過程圖3為外網網站數(shù)據庫中各個數(shù)據表之間的關系圖4為全表掃描方式進行數(shù)據庫初始化流程圖5為數(shù)據防篡改模塊對外網網站數(shù)據庫保護的工作流程6為數(shù)據獲取模塊獲取數(shù)據的工作流程7為數(shù)據發(fā)布進行數(shù)據發(fā)布的工作流程8為數(shù)據防篡改模塊數(shù)據防篡改工作流程圖
具體實施例方式下面結合附圖和實施例進一步描述本發(fā)明。網站數(shù)據防篡改系統(tǒng)物理構成可采用雙主機或單主機架構 雙主機架構中,網站數(shù)據防篡改系統(tǒng)由兩臺分別連接內、外網網站數(shù)據庫的獨立主機及連接兩主機的通信部件構成,通信部件可采用網卡或特殊的單向隔離部件; 單主機架構中,通過系統(tǒng)內部的模塊劃分,及模塊之間的通信機制實現(xiàn)上述描述的框架結構。一種應用本技術方案的應用框架如附圖I所示,其中包括網站數(shù)據防篡改系統(tǒng),內、外網網站數(shù)據庫、部署在內網的網站后臺管理系統(tǒng)及部署在外網的Web服務器。外網網站數(shù)據庫是網站Web服務器中動態(tài)內容的存儲介質,內外網數(shù)據庫均采用目前主流數(shù)據庫,數(shù)據只能由內網網站數(shù)據庫單向發(fā)布到外網網站數(shù)據庫中。網站數(shù)據防篡改系統(tǒng)連接內、外網網絡,并且是內、外網網絡的唯一連接系統(tǒng)。應用基于網絡隔離結構的網站數(shù)據防篡改方法的網站數(shù)據防篡改系統(tǒng)包括與內網網站數(shù)據庫相連的數(shù)據獲取模塊和數(shù)據變化監(jiān)測模塊,這兩部分共同構成網站數(shù)據防篡改系統(tǒng)的內網主機;與外網數(shù)據庫相連的數(shù)據更新模塊、數(shù)據發(fā)布模塊和數(shù)據防篡改模塊, 這三部分共同構成網站數(shù)據防篡改系統(tǒng)的外網主機;此外還包括內網主機和外網主機之間的連接通道。連接通道可為單向連接或雙向連接,用于實現(xiàn)數(shù)據由網站防篡改系統(tǒng)的內網部分到外網部分的單向流動。網站后臺管理系統(tǒng)通過數(shù)據庫的連接接口(JDBC或.Net的ODBC、ADO. Net等)實現(xiàn)對內網網站數(shù)據庫的訪問。網站管理人員從網站后臺管理系統(tǒng)提交數(shù)據后,數(shù)據將存儲在內網網站數(shù)據庫中,并經由網站數(shù)據防篡改系統(tǒng)將數(shù)據單向發(fā)布到外網網站數(shù)據庫中。本實施例中,一種基于網絡隔離結構的網站數(shù)據防篡改方法,包括如下步驟步驟一.系統(tǒng)初始設直系統(tǒng)初始化設置包括三個方面1)網站數(shù)據防篡改系統(tǒng)的內網主機設置用于設置網站數(shù)據防篡改系統(tǒng)對內網網站數(shù)據庫的訪問權限及獲取內網網站數(shù)據表變化數(shù)據的規(guī)則。從技術方面來說,目前獲得內網網站數(shù)據表變化數(shù)據可通過多種方式實現(xiàn),這里使用事件觸發(fā)器。事件觸發(fā)器是數(shù)據庫內建的一種機制,是特殊的存儲過程,觸發(fā)器的執(zhí)行不是由程序調用實現(xiàn),也不需要通過手工啟動執(zhí)行,而是由事件來觸發(fā),例如當對數(shù)據庫中某個表進行操作時就會激活觸發(fā)器。在需要監(jiān)測數(shù)據變化的內網網站數(shù)據表中建立事件觸發(fā)器,當內網網站數(shù)據表中的數(shù)據發(fā)生變化時,事件觸發(fā)器將變化的數(shù)據寫入到一個臨時表,即增量數(shù)據表中,數(shù)據變化監(jiān)測模塊定時查詢增量數(shù)據表,如發(fā)現(xiàn)存在新的數(shù)據記錄,則通知數(shù)據獲取模塊。數(shù)據獲取模塊通過數(shù)據庫接口訪問內網網站數(shù)據庫,獲得增量數(shù)據表中的數(shù)據記錄,并及時刪除已獲得的數(shù)據記錄。圖2反映了內網網站數(shù)據表中的變化數(shù)據添加至增量數(shù)據表的過程。2)網站數(shù)據防篡改系統(tǒng)的外網主機部分設置設置數(shù)據更新模塊對外網網站數(shù)據庫待更新數(shù)據表的訪問權限,設置數(shù)據發(fā)布模塊對外網網站數(shù)據庫中外網網站數(shù)據表的訪問權限。在獲得與內網網站數(shù)據庫相連的數(shù)據獲取模塊的增量數(shù)據后,數(shù)據更新模塊連接外網網站數(shù)據庫,將增量數(shù)據更新到外網網站數(shù)據庫中的待更新數(shù)據表中。數(shù)據發(fā)布模塊負責將待更新數(shù)據表中的數(shù)據發(fā)布到外網網站數(shù)據表中。外網網站數(shù)據庫的增量數(shù)據捕獲機制為事件觸發(fā)器,在數(shù)據發(fā)布模塊更新外網網站數(shù)據表后,利用事件觸發(fā)器捕獲外網網站數(shù)據表中的數(shù)據變化,將變化數(shù)據置于外網網站數(shù)據庫的待校驗增量數(shù)據表中。圖3反映了系統(tǒng)中外網網站數(shù)據庫各個數(shù)據表之間的關系。3)網站數(shù)據防篡改網站數(shù)據庫初始化同步數(shù)據獲取模塊對內網網站數(shù)據庫做全表掃描來獲得內網網站數(shù)據庫在當前時間點的所有數(shù)據記錄,并將獲取到的數(shù)據記錄發(fā)送給數(shù)據發(fā)布模塊,通過該模塊再更新到外網網站數(shù)據庫中。完成此次數(shù)據發(fā)布后,將實現(xiàn)內、外網網站數(shù)據庫中的數(shù)據一致,并保留當前時間點tstart b—作為內、外網網站數(shù)據庫數(shù)據更新的基準。使用全表掃描方式進行數(shù)據庫初始化的流程為(如圖4):I.當啟動內、外網網站數(shù)據庫初始化同步時,數(shù)據獲取模塊連接數(shù)據發(fā)布模塊,并發(fā)送“外網網站數(shù)據庫初始化”命令給數(shù)據發(fā)布模塊;2.數(shù)據發(fā)布模塊在收到“外網網站數(shù)據庫初始化”命令后,將依據2)中外網網站數(shù)據表的訪問權限設置連接外網網站數(shù)據庫。如外網網站數(shù)據表中存在數(shù)據,數(shù)據發(fā)布模塊首先清除表中所有數(shù)據,如其中沒有數(shù)據,轉入下一步驟;3.數(shù)據獲取模塊依據I)中設置的內網網站數(shù)據庫訪問權限,連接內網網站數(shù)據庫,并訪問內網網站數(shù)據表;4.數(shù)據獲取模塊執(zhí)行“Select…from··· ” SQL命令獲得內網網站數(shù)據表中所有數(shù)據記錄;5.將獲得的內網網站數(shù)據表的數(shù)據記錄以“外網網站數(shù)據庫更新命令+表數(shù)據” 格式存儲成數(shù)據文件;6.數(shù)據獲取模塊將獲取的數(shù)據文件發(fā)送給數(shù)據發(fā)布模塊;7.數(shù)據發(fā)布模塊依據數(shù)據文件中的命令描述調用相應的數(shù)據庫SQL語句實現(xiàn)外網網站數(shù)據庫的數(shù)據更新。4)為確保防篡改系統(tǒng)對數(shù)據庫的安全保護,數(shù)據防篡改模塊在設定對外網網站數(shù)據庫的監(jiān)控機制后,查詢外網網站數(shù)據庫中的所有用戶,密碼及其角色,并將“用戶名+密碼+角色”構成一字符串,作為MD5算法的參數(shù)計算用戶信息特征值,并保存該特征值Mb_, 當修改所述外網網站數(shù)據庫用戶權限設置時,將更新Mbase取值。定時查詢外網網站數(shù)據庫中的所有用戶,密碼及其角色,并依據所述算法計算用戶權限特征值Nm1,對比Nm1和Mbase, —致表示外網網站數(shù)據庫為安全,不一致表示外網網站數(shù)據庫中用戶,密碼或角色發(fā)生了變化,外網網站數(shù)據庫可能被入侵,告警,并向外網網站數(shù)據庫提出終止服務的請求,具體流程如圖5所示。步驟二 .網站數(shù)據更新I)網站管理人員通過網站后臺管理系統(tǒng)提交數(shù)據到內網網站數(shù)據庫;2)數(shù)據變化監(jiān)測模塊發(fā)現(xiàn)數(shù)據變化后,通知數(shù)據獲取模塊檢查內網網站數(shù)據庫的增量數(shù)據表。數(shù)據獲取模塊獲取內網網站數(shù)據庫中的數(shù)據記錄,然后將數(shù)據記錄轉換為文件,存儲在網站數(shù)據防篡改系統(tǒng)內網部分中。根據步驟一中設定,數(shù)據由內網網站數(shù)據表到增量數(shù)據表通過內建的事件觸發(fā)器完成。增量數(shù)據表包括如下字段更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據、獲取數(shù)據操作標識和數(shù)據唯一性標識 更新時間網站后臺管理系統(tǒng)提交數(shù)據的時間; 獲取時間網站數(shù)據防篡改系統(tǒng)中內網主機的數(shù)據獲取模塊訪問增量數(shù)據表, 并保存所訪問到的數(shù)據記錄的時間;· SQL命令網站后臺管理服務器提交數(shù)據時所執(zhí)行的操作; 內網網站數(shù)據表變化數(shù)據事件觸發(fā)器所捕獲的內網網站數(shù)據表中變化的數(shù)據; 獲取數(shù)據操作標識標識所述數(shù)據獲取模塊是否成功獲得所要訪問的數(shù)據記錄,包括“未獲取”、“獲取中”和“已獲取”三種狀態(tài); 數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出,MD5算法的輸入參數(shù)由以下字段中的字符串構成“所述更新時間+所述SQL命令+所述更新數(shù)據”,以標識所述增量數(shù)據的唯一性。如圖6所示,當內網網站數(shù)據庫數(shù)據表中的數(shù)據記錄通過事件觸發(fā)器進入增量數(shù)據表中,其獲取數(shù)據操作標識字段被設置為“未獲取”狀態(tài),表示該數(shù)據還未被數(shù)據獲取模塊獲得。在數(shù)據變化監(jiān)測模塊發(fā)現(xiàn)增量數(shù)據表中存在新數(shù)據記錄后,將通知數(shù)據獲取模塊獲取該記錄。數(shù)據獲取模塊依次查詢增量數(shù)據表中的所有數(shù)據記錄,如增量數(shù)據表為空表示已獲得所有數(shù)據,結束數(shù)據獲取過程,如存在數(shù)據記錄,檢查數(shù)據記錄的獲取數(shù)據操作標識字段,如狀態(tài)為“已獲取”表示該條數(shù)據記錄已被數(shù)據獲取模塊獲得,但可能由于某些意外原因未被刪除,數(shù)據獲取模塊將直接刪除該條記錄。如狀態(tài)為“未獲取”,將標識更新為“獲取中”。將獲取數(shù)據操作標識狀態(tài)為“獲取中”的數(shù)據記錄依據數(shù)據文件存儲格式轉換為數(shù)據文件,用MD5算法計算基于字符串“更新時間+SQL命令+待更新數(shù)據”而得到的數(shù)據唯一性標識,更新增量數(shù)據表中該操作標識字段并設置其為“已獲取”狀態(tài)。刪除操作標識為“已獲取”的數(shù)據記錄。若狀態(tài)為“獲取中”,表明該數(shù)據記錄未完整獲取,則繼續(xù)獲取。數(shù)據獲取模塊需獲取增量數(shù)據表如下字段的內容更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據和數(shù)據唯一性標識字段,這些內容共同構成增量數(shù)據。數(shù)據獲取模塊得到內網網站數(shù)據表中的增量數(shù)據后,將增量數(shù)據以XML的形式存儲在網站數(shù)據防篡改系統(tǒng)內網部分中,XML文件格式示例可為如下
< xml version="I.O'1 〉
<BCPFORMAT
xmlns=" http:// schemas.xxx. com/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> xml 文件標記頭 <AcqTime>更新時間
<Time ="xxx"/>
<\AcqTime> 〈RECORD〉數(shù)據
〈FIELD ID="I" xsi:type="CharTerm" TERMINATOR="\t"
MAX LENGTH=" 12"/>
〈/RECORD〉
〈Command〉操作命令
〈COMMOD STRING ="xxx" NAME="xxx"/>
</Command>
<ValidData>數(shù)據唯一性信息
〈Spec xxx />
< /ValidData > </BCPFORMAT>3)數(shù)據獲取模塊將增量數(shù)據文件通過內、外網通訊卡發(fā)送給數(shù)據更新模塊;4)數(shù)據更新模塊連接外網網站數(shù)據庫,依照增量數(shù)據文件依次更新待更新數(shù)據表。待更新數(shù)據表包括如下字段更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據、發(fā)布數(shù)據操作標識和數(shù)據唯一性標識。 更新時間網站后臺管理系統(tǒng)提交數(shù)據的時間; 獲取時間數(shù)據獲取模塊獲得該條數(shù)據的時間;· SQL命令網站后臺管理系統(tǒng)提交數(shù)據的操作; 內網網站數(shù)據表變化數(shù)據事件觸發(fā)器所捕獲的內網網站數(shù)據表中變化的數(shù)據; 發(fā)布數(shù)據操作標識標識網站數(shù)據防篡改系統(tǒng)中外網主機的數(shù)據發(fā)布模塊是否成功發(fā)布該條數(shù)據記錄,包括“未發(fā)布”、“發(fā)布中”和“已發(fā)布”三種狀態(tài); 數(shù)據唯一性標識由數(shù)據獲取模塊采用MD5算法計算得出。數(shù)據更新模塊只對外網網站數(shù)據庫的待更新數(shù)據表有讀寫操作權限,而對外網網站數(shù)據庫中的其它數(shù)據表沒有操作權限。數(shù)據更新模塊收到由數(shù)據獲取模塊發(fā)送的數(shù)據記錄后,將這些記錄更新到待更新數(shù)據表,并將數(shù)據記錄的發(fā)布數(shù)據操作標識字段更新為“未發(fā)布”狀態(tài)。數(shù)據更新完成后, 數(shù)據更新模塊通知數(shù)據發(fā)布模塊向外網網站數(shù)據庫發(fā)布數(shù)據。數(shù)據發(fā)布模塊依次查詢待更新數(shù)據表中的所有記錄,如待更新數(shù)據表為空表示已發(fā)布所有數(shù)據,結束數(shù)據發(fā)布過程。如存在數(shù)據記錄,檢查數(shù)據記錄的發(fā)布數(shù)據操作標識字段,如狀態(tài)為“已發(fā)布”表示該條數(shù)據記錄已被數(shù)據發(fā)布模塊發(fā)布到外網網站數(shù)據表中,但可能由于某些意外原因未被刪除,數(shù)據發(fā)布模塊將直接刪除該條記錄。如狀態(tài)為“未發(fā)布”,將發(fā)布數(shù)據操作標識更新為“發(fā)布中”。將狀態(tài)為“發(fā)布中” 的數(shù)據記錄發(fā)布到外網網站數(shù)據表中,更新發(fā)布數(shù)據操作標識字段并設置其為“已發(fā)布”狀態(tài),并將數(shù)據記錄的數(shù)據唯一性標識發(fā)送給數(shù)據防篡改模塊。刪除待更新數(shù)據表中操作標識為“已發(fā)布”的數(shù)據記錄。如發(fā)布數(shù)據操作標識為“發(fā)布中”的狀態(tài),繼續(xù)發(fā)布數(shù)據。整個更新及數(shù)據發(fā)布流程如圖7所示。5)依據步驟一中2)的設置,采用事件觸發(fā)器,獲得外網網站數(shù)據庫中的變化數(shù)據,并將變化數(shù)據置于待校驗增量數(shù)據表中。待校驗增量數(shù)據表應包括如下字段更新時間、SQL命令、外網網數(shù)據表變化數(shù)據和原始數(shù)據唯一性標識。 更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間;· SQL命令所述網站后臺管理系統(tǒng)提交數(shù)據的操作; 外網網數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的外網網站數(shù)據表中變化的數(shù)據; 原始數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出。數(shù)據發(fā)布模塊在更新每條數(shù)據后,都會將該條數(shù)據的數(shù)據唯一性標識發(fā)送給數(shù)據防篡改模塊,數(shù)據防篡改模塊將數(shù)據唯一性標識保存在數(shù)據唯一性標識隊列中。在確認數(shù)據唯一性標識對應的數(shù)據記錄成功發(fā)布后,從隊列中移除該標識。根據步驟一中的設置,事件觸發(fā)器將變化數(shù)據添加到待校驗增量數(shù)據表。
數(shù)據防篡改模塊在檢測到待校驗增量數(shù)據表中出現(xiàn)新數(shù)據記錄后,首先確認該項數(shù)據記錄是否由數(shù)據發(fā)布模塊產生。如果待校驗增量數(shù)據表中數(shù)據記錄的原始數(shù)據唯一性標識沒有包含在數(shù)據唯一性標識隊列中,表示增量數(shù)據不是由數(shù)據發(fā)布模塊產生,外網網站數(shù)據庫可能出現(xiàn)異常,數(shù)據防篡改模塊將告警,并通知數(shù)據發(fā)布模塊刪除外網網站數(shù)據表中的該項增量數(shù)據,并終止外網網站數(shù)據庫服務。否則,數(shù)據變化為正常變化,數(shù)據防篡改模塊將基于待校驗增量數(shù)據表中的“更新時間+SQL命令+外網網站數(shù)據表變化數(shù)據”字段構成的字符串,利用MD5算法計算該條數(shù)據的唯一性標識,與待校驗增量數(shù)據表的原始數(shù)據唯一性標識進行對比,如果二者一致,則數(shù)據更新正常操作;如果原始唯一性標識與新計算得到的唯一性標識不一致,表示數(shù)據發(fā)布過程數(shù)據內容被修改,數(shù)據防篡改模塊將告警,并通知數(shù)據發(fā)布模塊刪除外網網站數(shù)據表中的該項數(shù)據記錄,并終止外網網站數(shù)據庫服務。圖8描述了整個工作流程。6)數(shù)據防篡改模塊在數(shù)據防篡改機制方面遵從以下規(guī)則 所有來自內網網站數(shù)據庫中的數(shù)據更新均是合法更新,也即授權數(shù)據更新; 數(shù)據發(fā)布模塊在未授權更新外網網站數(shù)據庫數(shù)據的模式下,所有外網網站數(shù)據表的數(shù)據變化或數(shù)據庫用戶及用戶權限變化均是非法; 數(shù)據只能由內網網站數(shù)據庫單向更新到外網網站數(shù)據庫; 未授權修改外網網站數(shù)據庫用戶設置情況下,任何數(shù)據防篡改模塊所檢測到的用戶信息特征值與系統(tǒng)保存特征值不一致均是非法。待更新數(shù)據表、外網網站數(shù)據表、待校驗增量數(shù)據表操作流程如圖3所示。
權利要求
1.一種基于網絡隔離結構的網絡數(shù)據防篡改方法,其特征在于,是一種用于實現(xiàn)對使用動態(tài)網頁技術的數(shù)據查詢類網站的防篡改保護的方法,所述防篡改保護是指針對惡意用戶非法獲取網站數(shù)據庫管理權限后修改所述網站數(shù)據庫數(shù)據內容的一種防止非授權修改保護,所述網站數(shù)據防篡改保護方法是在一個由內網、網站數(shù)據防篡改系統(tǒng)以及外網三者依次相連而構成的網絡中,依次按以下步驟實現(xiàn)的步驟(I),構建一個所述的網站數(shù)據防篡改網絡,其中內網,由一個具有較高安全級別的內網網站數(shù)據庫以及一個向所述內網網站數(shù)據庫提交數(shù)據的網站后臺管理服務器構成,其中內網網站數(shù)據庫,設有內網網站數(shù)據表和增量數(shù)據表,其中內網網站數(shù)據表內建一個事件觸發(fā)器,當所述內網網站數(shù)據表中的數(shù)據變化時,該事件觸發(fā)器把變化的數(shù)據寫入增量數(shù)據表中,增量數(shù)據表,存儲所述事件觸發(fā)器捕獲的內網網站數(shù)據庫表中的數(shù)據變化信息,所述增量數(shù)據表包括如下字段更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據、獲取數(shù)據操作標識和數(shù)據唯一性標識,所述增量數(shù)據表中的更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據和數(shù)據唯一性標識字段內容構成增量數(shù)據,其中更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間;獲取時間所述網站數(shù)據防篡改系統(tǒng)中內網主機的數(shù)據獲取模塊訪問所述增量數(shù)據表,并保存所訪問到的數(shù)據記錄的時間;SQL命令所述網站后臺管理服務器提交數(shù)據時所執(zhí)行的操作;內網網站數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的內網網站數(shù)據表中變化的數(shù)據; 獲取數(shù)據操作標識標識網站數(shù)據防篡改改系統(tǒng)中的數(shù)據獲取模塊,是否成功獲得所要訪問的數(shù)據記錄,包括“未獲取”、“獲取中”和“已獲取”三種狀態(tài);數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出,MD5算法的輸入參數(shù)由以下字段中的字符串構成“所述更新時間+所述SQL命令+所述內網網站數(shù)據表變化數(shù)據”,以標識所述增量數(shù)據的唯一性;外網,由一個具有較低安全級別的外網網站數(shù)據庫以及一個外網Web服務器構成,其中外網網站數(shù)據庫,是所述的外網Web服務器中動態(tài)內容存儲介質,設有待更新數(shù)據表、外網網站數(shù)據表以及待校驗增量數(shù)據表,其中待更新數(shù)據表,包括如下字段更新時間、獲取時間、SQL命令、內網網站數(shù)據表變化數(shù)據、發(fā)布數(shù)據操作標識和數(shù)據唯一性標識,其中更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間;獲取時間所述數(shù)據獲取模塊獲得該條數(shù)據的時間;SQL命令所述網站后臺管理系統(tǒng)提交數(shù)據的操作;內網網站數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的內網網站數(shù)據表中變化的數(shù)據; 發(fā)布數(shù)據操作標識標識網站數(shù)據防篡改系統(tǒng)中外網主機的數(shù)據發(fā)布模塊是否成功發(fā)布該條數(shù)據記錄,包括“未發(fā)布”、“發(fā)布中”和“已發(fā)布”三種狀態(tài);數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出;外網網站數(shù)據表,設有事件觸發(fā)器,當所述外網網站數(shù)據表中的數(shù)據變化時,該事件觸發(fā)器把變化的數(shù)據寫入待校驗增量數(shù)據表,待校驗增量數(shù)據表,存儲所述事件觸發(fā)器捕獲的外網網站數(shù)據庫表中的數(shù)據變化信息,所述待校驗增量數(shù)據表包括如下字段更新時間、SQL命令、外網網站數(shù)據表變化數(shù)據和原始數(shù)據唯一性標識,其中更新時間所述網站后臺管理系統(tǒng)提交數(shù)據的時間;SQL命令所述網站后臺管理系統(tǒng)提交數(shù)據的操作;外網網站數(shù)據表變化數(shù)據所述事件觸發(fā)器所捕獲的外網網站數(shù)據表中變化的數(shù)據; 原始數(shù)據唯一性標識由所述數(shù)據獲取模塊采用MD5算法計算得出;網站數(shù)據防篡改系統(tǒng),設有內網主機,外網主機以及連接所述內網主機和外網主機以便所述增量數(shù)據由所述內網主機向外網主機單向發(fā)送的相互連接的內網主機通訊卡、外網主機通訊卡,其中內網主機,設有數(shù)據獲取模塊和數(shù)據變化監(jiān)測模塊,其中數(shù)據獲取模塊,設有內網網站數(shù)據庫所述增量數(shù)據表的訪問權限,還設有所述內網網站數(shù)據表數(shù)據變化消息的輸入端、所述增量數(shù)據表內數(shù)據記錄查詢命令的輸出端、所述增量數(shù)據的輸入端以及外網網站數(shù)據庫初始化命令的輸出端,還有把所述增量數(shù)據文件發(fā)往所述外網通訊卡的增量數(shù)據文件輸出端,獲取內網網站數(shù)據表全部數(shù)據記錄命令的輸出端以及所述內網網站數(shù)據表數(shù)據的輸入端;數(shù)據變化監(jiān)測模塊,設有所述內網網站數(shù)據表數(shù)據變化的查詢命令輸出端,數(shù)據變化消息的輸入端以及內網網站數(shù)據表數(shù)據變化消息的輸出端;外網主機,設有數(shù)據更新模塊、數(shù)據發(fā)布模塊和數(shù)據防篡改模塊,其中數(shù)據更新模塊,設有對所述外網網站數(shù)據庫內待更新數(shù)據表的訪問權限,還設有接收來自所述數(shù)據獲取模塊發(fā)送的增量數(shù)據文件的輸入端,所述增量數(shù)據文件為增量數(shù)據的文件存儲形式,還設有請求數(shù)據發(fā)布命令的輸出端以及發(fā)往所述待更新數(shù)據表的增量數(shù)據輸出端;數(shù)據發(fā)布模塊,設有對所述外網網站數(shù)據表的訪問權限,還設有所述外網網站數(shù)據庫初始化命令的輸入端,請求數(shù)據發(fā)布命令的輸入端,發(fā)布數(shù)據的輸出端,所述發(fā)布數(shù)據是指根據所述待更新數(shù)據表中SQL命令字段及內網網站數(shù)據表變化數(shù)據字段中的內容,對所述外網網站數(shù)據表執(zhí)行相應的SQL命令,以及外網網站數(shù)據表操作命令輸出端,控制數(shù)據發(fā)布輸入端,數(shù)據記錄唯一性標識輸出端;數(shù)據防篡改模塊,設有對外網網站數(shù)據庫的管理權限,對所述待校驗增量數(shù)據表訪問權限,還設有控制數(shù)據發(fā)布的命令輸出端,所述數(shù)據唯一性標識的輸入端,管理外網網站數(shù)據庫的命令輸出端,所述外網網站數(shù)據庫管理信息的輸入端,所述外網網站數(shù)據表數(shù)據變化的查詢命令輸出端,所述待校驗增量數(shù)據表中數(shù)據記錄輸入端,所述待校驗增量數(shù)據表內數(shù)據記錄查詢命令的輸出端,以及終止外網網站數(shù)據庫服務的輸出端,并依次按以下步驟進行防篡改保護A :外網網站數(shù)據庫用戶保護a:在完成所述外網網站數(shù)據表中的事件觸發(fā)器及對外網網站數(shù)據表的訪問權限設置后,查詢外網網站數(shù)據庫中的所有用戶,密碼,角色,并將“用戶名+密碼+角色”字符串作為MD5算法的參數(shù),計算用戶信息特征值,并保持該特征值Mb_,當修改所述外網網站數(shù)據庫用戶權限設置時,將更新Mbasej取值;b :定時查詢外網網站數(shù)據庫中的所有用戶,密碼及其角色,并依據所述MD5算法計算用戶權限特征值Nm1;C :對比Ncal和Mbase, 二者一致表示所述外網網站數(shù)據庫安全,不一致表示所述外網網站數(shù)據庫中用戶,密碼或角色發(fā)生了變化,數(shù)據庫可能被入侵,告警,并向外網網站數(shù)據庫提出終止服務的請求,B :數(shù)據防篡改a :所述數(shù)據防篡改模塊定時查詢所述待校驗增量數(shù)據表,檢測到待校驗增量數(shù)據表中數(shù)據記錄變化后,判斷是否從所述數(shù)據發(fā)布模塊收到了新的數(shù)據唯一性標識若沒有,則表明外網網站數(shù)據表中出現(xiàn)了非授權修改,便告警發(fā)出控制命令,命所述數(shù)據發(fā)布模塊發(fā)出刪除命令,刪除所述外網網站數(shù)據表中新增加的數(shù)據記錄,同時終止外網網站數(shù)據庫服務;若所述數(shù)據發(fā)布模塊發(fā)送的數(shù)據唯一性標識與查詢結果中所述待校驗增量數(shù)據表相應數(shù)據記錄的原始數(shù)據唯一性標識一致,表示數(shù)據發(fā)布模塊發(fā)布了帶有該唯一性標識的數(shù)據信息,則執(zhí)行步驟b;b :將待校驗增量數(shù)據表對應數(shù)據記錄的如下字段內容構成一字符串作為MD5算法的輸入參數(shù)“所述更新時間+所述SQL命令+所述內網網站數(shù)據表變化數(shù)據”,用MD5算法計算該外網網站數(shù)據表變化數(shù)據的唯一性標識,并與待校驗增量數(shù)據表對應數(shù)據記錄的所述原始數(shù)據唯一性標識字段中的內容進行對比,如果二者一致,則不向數(shù)據發(fā)布模塊發(fā)布所述控制命令,若兩者不一致,則告警,向所述數(shù)據發(fā)布模塊發(fā)布所述控制命令,令其刪除所述外網網站數(shù)據表中的新增數(shù)據記錄,并向外網網站數(shù)據庫提出終止服務的請求,步驟(2),所述網站數(shù)據防篡改系統(tǒng)依次按以下步驟完成所述內網網站數(shù)據庫和外網網站數(shù)據庫的數(shù)據初始化同步,步驟(2. I),所述數(shù)據獲取模塊向所述數(shù)據發(fā)布模塊發(fā)送“外網網站數(shù)據庫初始化”命令,步驟(2. 2),所述數(shù)據發(fā)布模塊依所設置的訪問權限連接所述外網網站數(shù)據表,若存在數(shù)據,便清除,否則,執(zhí)行步驟(2. 3),步驟(2. 3),所述數(shù)據獲取模塊依所設置的權限連接內網網站數(shù)據表,執(zhí)行SQL中的 “Select…from…”命令獲得所述內網網站數(shù)據表中的所有數(shù)據,步驟(2. 4),所述數(shù)據獲取模塊把步驟(2. 3)所獲得的數(shù)據以“外網網站數(shù)據庫更新命令+表數(shù)據”格式形成數(shù)據文件發(fā)送給所述數(shù)據發(fā)布模塊,步驟(2. 5),所述數(shù)據發(fā)布模塊依據收到的所述增量數(shù)據文件中的內容調用SQL命令實現(xiàn)外網網站數(shù)據表的更新;步驟(3),依次按以下步驟實現(xiàn)外網網站數(shù)據庫的數(shù)據更新,步驟(3. I),網站管理人員通過所述網站后臺管理系統(tǒng)提交數(shù)據到內網網站數(shù)據表,用所述事件觸發(fā)器將內網網站數(shù)據表變化數(shù)據發(fā)送至所述增量數(shù)據表,步驟(3. 2),所述數(shù)據變化監(jiān)測模塊查詢到所述增量數(shù)據表中的數(shù)據記錄發(fā)生變化后, 通知所述數(shù)據獲取模塊訪問所述增量數(shù)據表,獲取增量數(shù)據依次查詢所述增量數(shù)據表中的所有數(shù)據記錄,予以分別處理若所述增量數(shù)據表為空,結束數(shù)據獲取過程;若存在數(shù)據記錄,則檢查數(shù)據記錄的獲取數(shù)據操作標識字段,如狀態(tài)為“已獲取”,則表示該條數(shù)據記錄已被所述數(shù)據獲取模塊獲得,便直接刪除該條數(shù)據記錄;若狀態(tài)為“未獲取”,將標識更新為“獲取中”,并將所述獲取數(shù)據操作標識狀態(tài)為“獲取中”的數(shù)據記錄依據數(shù)據文件存儲格式轉換為數(shù)據文件,以字段“更新時間+SQL命令+ 內網網站數(shù)據表變化數(shù)據”中的內容構建字符串作為輸入參數(shù),通過MD5算法計算數(shù)據唯一性標識,更新所述獲取數(shù)據操作標識字段并設置其為“已獲取”狀態(tài),刪除操作標識為“已獲取”的數(shù)據記錄;若狀態(tài)為“獲取中”,表明該數(shù)據記錄未完整獲取,則繼續(xù)獲?。徊襟E(3. 3),在收到步驟(3. 2)形成的所述數(shù)據文件后,所述數(shù)據更新模塊把這些數(shù)據更新到所述待更新數(shù)據表中,并將發(fā)布數(shù)據操作標識字段標識為“未發(fā)布”,并通知所述數(shù)據發(fā)布模塊有數(shù)據需要發(fā)布,步驟(3. 4),所述數(shù)據發(fā)布模塊在收到步驟(3.3)中所述標識有“未發(fā)布”的數(shù)據記錄時,便向所述外網網站數(shù)據表發(fā)布所述數(shù)據信息,所述數(shù)據發(fā)布模塊依次查詢所述待更新數(shù)據表中的所有數(shù)據記錄,予以分別處理若所述待更新數(shù)據表為空,結束數(shù)據發(fā)布過程;若所述待更新數(shù)據表存在數(shù)據記錄,則檢查數(shù)據記錄的發(fā)布數(shù)據操作標識字段,如狀態(tài)為“已發(fā)布”,則表示該條數(shù)據記錄已發(fā)布到所述外網網站數(shù)據表中,便直接刪除該條數(shù)據記錄;若狀態(tài)為“未發(fā)布”,將標識更新為“發(fā)布中”,并將發(fā)布數(shù)據操作標識狀態(tài)為“發(fā)布中” 的數(shù)據記錄以字段更新時間,SQL命令,內網網站數(shù)據表變化數(shù)據中的內容構建SQL命令, 提交到所述外網網站數(shù)據表中,刪除操作標識為“已發(fā)布”的數(shù)據記錄;若狀態(tài)為“發(fā)布中”,表明該數(shù)據記錄未完整發(fā)布,則繼續(xù)發(fā)布;步驟(3. 5),數(shù)據防篡改模塊在檢測到待校驗增量數(shù)據表中數(shù)據變化后,執(zhí)行數(shù)據確認操作,驗證數(shù)據發(fā)布的準確性,結束。
2.根據權利要求I所述的一種基于網絡隔離結構的網絡數(shù)據防篡改方法,其特征在于,所述數(shù)據發(fā)布模塊要依次查詢所述待更新數(shù)據表中的所有數(shù)據記錄若發(fā)布數(shù)據操作標識狀態(tài)為“已發(fā)布”,則直接刪除該條數(shù)據記錄;若發(fā)布數(shù)據操作標識狀態(tài)為“未發(fā)布”,則置為“發(fā)布中”;若發(fā)布數(shù)據操作標識狀態(tài)為“發(fā)布中”,則置為“已發(fā)布”狀態(tài),并直接刪除該條數(shù)據記錄。
3.根據權利要求I所述的一種基于網絡隔離結構的網絡數(shù)據防篡改方法,其特征在于,所述數(shù)據防篡改模塊定時查詢系統(tǒng)設置及所述待校驗增量數(shù)據表中數(shù)據記錄,并在檢測到系統(tǒng)設置及數(shù)據變化之時啟動相應操作。
全文摘要
一種基于網絡隔離結構的網站數(shù)據防篡改系統(tǒng),屬于網絡安全技術領域。將保存網站數(shù)據的數(shù)據庫服務器置于較高安全級別網絡中,將數(shù)據庫內容單向發(fā)布到與互聯(lián)網相連的較低安全級別網絡的數(shù)據庫服務器中,保護該較低安全級別網絡中的網站數(shù)據。為此,構建了由內網主機和外網主機相互連接的網站數(shù)據防篡改系統(tǒng),在外網主機中,數(shù)據更新模塊把增量數(shù)據提交到待更新數(shù)據表,數(shù)據發(fā)布模塊將該增量數(shù)據發(fā)布到外網網站數(shù)據表。數(shù)據防篡改模塊定時查詢系統(tǒng)設置及待校驗增量數(shù)據表中數(shù)據變化,在檢測到數(shù)據變化之時啟動相應操作,確保對外網網站數(shù)據表的操作為授權操作。該方法可以有效防止諸如SQL注入等針對數(shù)據庫的攻擊,確保網站數(shù)據庫的數(shù)據安全。
文檔編號G06F21/00GK102609645SQ20121001749
公開日2012年7月25日 申請日期2012年1月19日 優(yōu)先權日2012年1月19日
發(fā)明者郝慧, 魏育輝 申請人:北京工業(yè)大學