黃元培
(國家廣播電視總局九一六臺(tái),青海 格爾木 816099)
隨著我國計(jì)算機(jī)技術(shù)的發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)庫也逐漸普及開來。但是由于網(wǎng)絡(luò)自身的影響,網(wǎng)絡(luò)數(shù)據(jù)庫的安全仍然難以保證。所以,應(yīng)繼續(xù)深入研究網(wǎng)絡(luò)數(shù)據(jù)庫的安全隱患,并不斷改進(jìn)其防范技術(shù)、方法,真正保障數(shù)據(jù)庫的安全,拓寬其應(yīng)用領(lǐng)域。
網(wǎng)絡(luò)數(shù)據(jù)庫是指將計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫技術(shù)融合在一起,并運(yùn)用計(jì)算機(jī)網(wǎng)絡(luò)的優(yōu)勢(shì),將存于數(shù)據(jù)庫的大量信息發(fā)布出去。同時(shí),還可運(yùn)用數(shù)據(jù)庫技術(shù)優(yōu)勢(shì),加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)的管理,從而保證用戶、數(shù)據(jù)庫之間能實(shí)時(shí)交互。目前,網(wǎng)絡(luò)數(shù)據(jù)庫在網(wǎng)站留言簿、論壇、遠(yuǎn)程教育、電子商務(wù)等領(lǐng)域中都有應(yīng)用??梢哉f,這些系統(tǒng)的正常運(yùn)行完全依賴于網(wǎng)絡(luò)數(shù)據(jù)庫。
與傳統(tǒng)數(shù)據(jù)庫相比,網(wǎng)絡(luò)數(shù)據(jù)庫具有以下特點(diǎn):第一,可擴(kuò)大數(shù)據(jù)資源的共享范圍。借助網(wǎng)絡(luò),網(wǎng)絡(luò)數(shù)據(jù)庫的資源共享范圍不再局限于企業(yè)內(nèi)部或國內(nèi)。第二,易進(jìn)行分布式處理??梢罁?jù)實(shí)際情況,就近處理,滿足用戶的使用需求。第三,數(shù)據(jù)資源應(yīng)用形式更靈活。在開發(fā)中既可應(yīng)用客戶機(jī)/服務(wù)器(Client/Server,C/S)結(jié)構(gòu),也可應(yīng)用瀏覽器/服務(wù)器(Browser/Server,B/S)結(jié)構(gòu)。第四,方便數(shù)據(jù)傳輸。利用網(wǎng)絡(luò)可以將數(shù)據(jù)傳輸?shù)饺魏斡芯W(wǎng)絡(luò)覆蓋的地區(qū)。第五,使用方便。網(wǎng)絡(luò)數(shù)據(jù)庫的最大優(yōu)點(diǎn)是用戶通過Web瀏覽器就可進(jìn)行查詢、存儲(chǔ)、刪除等操作,既能降低數(shù)據(jù)庫的應(yīng)用難度,也能簡化網(wǎng)絡(luò)數(shù)據(jù)庫的運(yùn)作流程。
一般情況下,多是采用非編譯性語言編寫ASP程序。但是非編譯性語言的安全性無法保證。比如任何人進(jìn)入站點(diǎn),就可獲取源代碼,從而造成一系列的數(shù)據(jù)庫安全問題。
AS代碼是通過表單完成用戶交互的,但會(huì)顯示在瀏覽器中。若不及時(shí)采用安全措施,導(dǎo)致代碼內(nèi)容泄露,非法用戶就有可能避開驗(yàn)證直接進(jìn)入頁面,導(dǎo)致數(shù)據(jù)庫出現(xiàn)安全問題。
相比于本地?cái)?shù)據(jù)庫來說,網(wǎng)絡(luò)數(shù)據(jù)庫的安全隱患更大。其根本原因就是網(wǎng)絡(luò)自身存在安全問題,并且網(wǎng)絡(luò)擴(kuò)大了網(wǎng)絡(luò)數(shù)據(jù)庫的用戶數(shù)量。在使用網(wǎng)絡(luò)的過程中,用戶有可能非法訪問網(wǎng)絡(luò)數(shù)據(jù)庫,或者是攻擊、搭線竊聽數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)泄露、丟失。
目前,網(wǎng)絡(luò)用戶基本都是應(yīng)用Web程序服務(wù)器,在應(yīng)用之前要先建立防火墻,提升服務(wù)器的安全性。但是服務(wù)器對(duì)開放制定的算口安全系數(shù)并不高,很容易受到黑客的攻擊,最為突出的攻擊手段就是加入結(jié)構(gòu)化查詢語言。如果在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的更新過程中,開發(fā)人員的專業(yè)能力不足或是不重視服務(wù)器安全,就有可能在程序上留下漏洞,會(huì)給黑客留下攻擊的機(jī)會(huì),將結(jié)構(gòu)化查詢語言注入客戶端,就能輕而易舉地獲取各種數(shù)據(jù)信息。
在開發(fā)、運(yùn)營、維護(hù)網(wǎng)絡(luò)數(shù)據(jù)時(shí)需遵守基本的保密原則,保證網(wǎng)絡(luò)數(shù)據(jù)庫的數(shù)據(jù)不會(huì)在未授權(quán)的狀態(tài)下共享。如果數(shù)據(jù)庫中的文件、數(shù)據(jù)沒有加密,就有可能被篡改、竊取。程序、結(jié)構(gòu)化查詢語言被訪問時(shí),訪問信息未被加密或是加密程度不足,會(huì)導(dǎo)致訪問信息的泄露。黑客利用OS工具對(duì)數(shù)據(jù)管理文件進(jìn)行竊取也會(huì)導(dǎo)致數(shù)據(jù)泄露、被盜[1]。
搭建網(wǎng)絡(luò)數(shù)據(jù)庫時(shí),在保證參照完整、用戶定義完整、實(shí)體完整的同時(shí),也要保證數(shù)據(jù)的一致性。通常多是應(yīng)用PHP,JSP等語言完善數(shù)據(jù)庫。但是不進(jìn)行用戶提交數(shù)據(jù)的過濾、判別,就有可能導(dǎo)致數(shù)據(jù)庫被惡意代碼攻擊。一般情況下,用戶在訪問數(shù)據(jù)庫時(shí)需提交用戶名、密碼,但網(wǎng)絡(luò)的開放性進(jìn)一步加大了用戶名、密碼的保護(hù)難度,很有可能導(dǎo)致用戶名、密碼被泄露,造成數(shù)據(jù)庫被攻擊。
為了杜絕第三方用戶對(duì)網(wǎng)絡(luò)數(shù)據(jù)庫的非法訪問,解決程序、網(wǎng)絡(luò)帶來的隱患,技術(shù)人員可充分應(yīng)用訪問控制技術(shù),提升網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全性,可以說,這是防止網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)出現(xiàn)漏洞的關(guān)鍵技術(shù)。
應(yīng)用網(wǎng)絡(luò)控制技術(shù)的目的是明確可以訪問數(shù)據(jù)庫的用戶。常用的訪問控制方式包括:(1)自主訪問控制。讓具有訪問特權(quán)的用戶將相應(yīng)的訪問許可傳遞給其他用戶。(2)強(qiáng)制訪問控制。針對(duì)不同類型的信息采取不同的安全策略。是建立在訪問對(duì)象信任度的基礎(chǔ)上的,也就是說,不同信任度的用戶具有不同的訪問權(quán)限[2]。(3)基于角色的訪問控制。針對(duì)用戶職責(zé)分配角色,并對(duì)用戶角色授予不同的訪問權(quán)限。在實(shí)際應(yīng)用中可采取以下方法應(yīng)用基于角色的訪問控制方式,比如,依據(jù)網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)特點(diǎn),建立核心用戶,并將表、觸發(fā)器等數(shù)據(jù)庫對(duì)象建立到核心用戶中;結(jié)合系統(tǒng)用戶的特點(diǎn),建立不同類型的角色,賦予角色不同的訪問權(quán)限;創(chuàng)建通用用戶默認(rèn)角色,將其賦予某一個(gè)角色??傊?,訪問控制技術(shù)是非常有效的安全技術(shù),可以有效消除網(wǎng)絡(luò)數(shù)據(jù)庫的安全隱患。
用戶身份認(rèn)證是保護(hù)網(wǎng)絡(luò)數(shù)據(jù)庫安全的第一道防線。所有用戶在訪問網(wǎng)絡(luò)數(shù)據(jù)庫時(shí),都要進(jìn)行身份認(rèn)證,只有用戶輸入正確的口令才能進(jìn)入并訪問網(wǎng)絡(luò)數(shù)據(jù)庫。如果用戶信息錯(cuò)誤,就無法進(jìn)入系統(tǒng)。如今,最常用的是用戶名、密碼認(rèn)證,指紋認(rèn)證、人臉識(shí)別等應(yīng)用效果更好、技術(shù)水平更高的身份認(rèn)證技術(shù)也在不斷發(fā)展,可根據(jù)實(shí)際需求,靈活應(yīng)用身份認(rèn)證方式。
為了進(jìn)一步提高網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全性,杜絕黑客攻擊、入侵,還可應(yīng)用數(shù)據(jù)加密技術(shù),提升數(shù)據(jù)查詢、傳輸?shù)陌踩浴?/p>
目前,常用的加密方式包括內(nèi)部加密、外部加密兩種。其中,內(nèi)部加密是指在數(shù)據(jù)服務(wù)端進(jìn)行加密、解密,但是會(huì)帶來更大的安全危險(xiǎn)。外部加密是指在程序端進(jìn)行加密、解密。內(nèi)部加密、外部加密各有優(yōu)缺點(diǎn),應(yīng)靈活應(yīng)用。另外,常用于網(wǎng)絡(luò)數(shù)據(jù)庫加密的加密算法包括:第一,序列密碼。即以字符為基礎(chǔ)單位進(jìn)行加密。比如對(duì)明文添加與其自身長度相等的亂碼,就可將其看成密鑰,實(shí)現(xiàn)一次一密。第二,分組密碼。主要是對(duì)明文進(jìn)行均勻分組,并對(duì)不同的分組應(yīng)用不同的密鑰。該算法的優(yōu)點(diǎn)是難以分析、計(jì)算,但是數(shù)據(jù)、環(huán)境、規(guī)律等因素都會(huì)影響其應(yīng)用。第三,公鑰密碼。具有加密、解密速度慢的缺點(diǎn)。需要注意的是由于密碼系統(tǒng)是反復(fù)使用的,單純應(yīng)用加密算法也不能保證信息的安全,所以,在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)庫加密時(shí),還要采取有效的措施加強(qiáng)密鑰管理,比如實(shí)行二級(jí)密鑰管理。
除了遭到非法入侵、黑客攻擊,出現(xiàn)數(shù)據(jù)庫數(shù)據(jù)丟失、泄露等問題外,計(jì)算機(jī)還有可能會(huì)發(fā)生硬件故障,導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)庫信息丟失。所以,要提前做好網(wǎng)絡(luò)數(shù)據(jù)庫的備份,以便發(fā)生重大安全事故時(shí),及時(shí)恢復(fù)數(shù)據(jù),保證網(wǎng)絡(luò)數(shù)據(jù)庫的正常運(yùn)行。
網(wǎng)絡(luò)數(shù)據(jù)庫需要備份的內(nèi)容包括用戶數(shù)據(jù)庫、系統(tǒng)數(shù)據(jù)庫、事務(wù)日志等。一般情況下,多是選擇文件存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)庫、事務(wù)日志、文件等的存儲(chǔ)。另外,網(wǎng)絡(luò)數(shù)據(jù)庫備份還可分為:(1)完全備份,指對(duì)整個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫的所有對(duì)象進(jìn)行備份。(2)事務(wù)日志備份,指在自上次備份事務(wù)日志后對(duì)數(shù)據(jù)庫執(zhí)行的所有事物的記錄。(3)差異備份,指對(duì)上次備份后發(fā)生更改的數(shù)據(jù)進(jìn)行備份。具體可依據(jù)實(shí)際情況,靈活選擇備份方式[3]。
網(wǎng)路數(shù)據(jù)庫恢復(fù)方式也可分為3種,即簡單恢復(fù)、完全恢復(fù)、大容量日志記錄恢復(fù)。具體可依據(jù)數(shù)據(jù)庫的實(shí)際破壞程度選擇合適的恢復(fù)方式。比如在數(shù)據(jù)庫遭受重大事故后系統(tǒng)崩潰,大部分?jǐn)?shù)據(jù)丟失,就可采用完全恢復(fù)的方式。如果只是遭受了局部破壞,就可選擇簡單恢復(fù)。另外,由于數(shù)據(jù)備份與恢復(fù)之間存在時(shí)間差,所以在恢復(fù)之前應(yīng)先查看數(shù)據(jù)信息,需要查看的信息包括日志文件、介質(zhì)首部信息等??傊?,只有做好數(shù)據(jù)備份、恢復(fù),才能進(jìn)一步減少網(wǎng)絡(luò)數(shù)據(jù)庫安全隱患帶來的損失,保證網(wǎng)絡(luò)數(shù)據(jù)庫能盡快恢復(fù),帶給人們良好的使用體驗(yàn)。
由于各種不良因素的影響,網(wǎng)絡(luò)數(shù)據(jù)庫會(huì)出現(xiàn)各種安全隱患,導(dǎo)致數(shù)據(jù)庫系統(tǒng)被攻擊、非法入侵。若是不消除安全隱患,就會(huì)引發(fā)數(shù)據(jù)丟失、篡改等問題,給企業(yè)造成嚴(yán)重的經(jīng)濟(jì)損失。在建設(shè)網(wǎng)絡(luò)數(shù)據(jù)庫時(shí),應(yīng)積極利用訪問控制、加密、身份認(rèn)證等技術(shù),提高網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全性,同時(shí),做好數(shù)據(jù)備份與恢復(fù)工作,確保網(wǎng)絡(luò)數(shù)據(jù)庫穩(wěn)定運(yùn)行。