一、前言
??????? 隨著網(wǎng)絡計算機信息技術的高速發(fā)展,互聯(lián)網(wǎng)上的信息發(fā)布和信息獲取越來越深入到人們的生活和工作。但是病毒的入侵,黑客的攻擊等安全隱患時時困擾著人們,網(wǎng)站安全管理刻不容緩,越來越多的IT人士開始了關于網(wǎng)絡、網(wǎng)站的安全性管理研究。
??????? 網(wǎng)站安全目前已發(fā)展成為一個跨學科的綜合性學科,它包括通信技術、網(wǎng)站技術、計算機軟件、硬件設計技術、密碼學、網(wǎng)站安全與計算機安全技術等,網(wǎng)站安全是在攻擊與防范這一對矛盾相互作用的過程中發(fā)展起來的。新的攻擊導致必須研究新的防護措施,新的防護措施又招致攻擊者新的攻擊,如此循環(huán)反復,網(wǎng)站安全技術也就在雙方的爭斗中逐步完善發(fā)展起來。
??????? 網(wǎng)站安全是指對網(wǎng)站進行管理和控制,并采取一定的技術措施,從而確保在一個網(wǎng)站環(huán)境里信息數(shù)據(jù)的機密化、完整性及可使用性受到有效的保護。其主要目標就是要穩(wěn)妥地確保經(jīng)由網(wǎng)站傳達的信息總能夠在到達目的地時沒有任何增加、改變、丟失或被他人非法讀取。要做到這一點,必須保證網(wǎng)站系統(tǒng)軟件、數(shù)據(jù)庫系統(tǒng)其有一定的安全保護功能,并保證網(wǎng)站部件如終端、數(shù)據(jù)鏈路等的功能不變而且僅僅是那些被授權的人們可以訪問。
??????? 二、網(wǎng)絡安全隱患的主要因素概述
??????? 影響網(wǎng)站安全的問題主要來自于網(wǎng)絡的不安全性,所以在這個意義上講,網(wǎng)站的安全漏洞其實也就是網(wǎng)絡的安全漏洞,其漏洞主要來自以下幾個方面:
??????? (一)自然因素:
??????? 1、軟件漏洞
??????? 即使再完美的系統(tǒng)軟件和應用軟件也不能保證是百分之百的無缺陷和無漏洞的,而這些缺陷和漏洞恰恰是非法用戶、黑客進行竊取機密信息和破壞信息的首選途徑。針對固有的安全漏洞進行攻擊,主要在以下幾個方面:
??????? (1)協(xié)議漏洞。例如,IMAP和POP3協(xié)議一定要在Unix根目錄下運行,攻擊者利用這一漏洞攻擊IMAP破壞系統(tǒng)的根目錄,從而獲得超級用戶的特權。
??????? (2)緩沖區(qū)溢出。很多系統(tǒng)在不檢查程序與緩沖區(qū)之間變化的情況下,就接受任何長度的數(shù)據(jù)輸入,把溢出部分放在堆棧內(nèi),系統(tǒng)仍照常執(zhí)行命令。攻擊者就利用這一漏洞發(fā)送超出緩沖區(qū)所能處理的長度的指令,來造成系統(tǒng)不穩(wěn)定狀態(tài)。
??????? (3)口令攻擊。例如,Unix系統(tǒng)軟件通常把加密的口令保存在一個文件中,而該文件可通過拷貝或口令破譯方法受到入侵。因此,任何不及時更新的系統(tǒng),都是容易被攻擊的。
??????? 2、病毒攻擊
??????? 計算機病毒的主要危害有:對計算機數(shù)據(jù)信息的直接破壞作用,給用戶造成重大損失:占用系統(tǒng)資源并影響運行速度:產(chǎn)生其他不可預見的危害:給用戶造成嚴重的心理壓力。計算機病毒一般分為四類:①文件型病毒(FileViruses);②引導型病毒(SystemorBootSectorVirus);③鏈式病毒(SYSTEMorCLUSTERVirus);④宏病毒(MacroVirus)。
??????? (二)人為因素:
??????????? 1、操作失誤
?????????? 操作員安全意識不強、安全配置不當、用戶口令選擇不慎.、將自己的帳號隨意轉借他人或與別人共享等造成的安全漏洞,都會對網(wǎng)絡安全帶來威脅。但是隨著網(wǎng)絡管理制度的建立和對使用人員的培訓,此種情況逐漸減少.對網(wǎng)絡安全己不構成主要威脅。
???????? 2、黑客攻擊
??????? 這是當前計算機網(wǎng)絡所面臨的最大威脅,敵手的攻擊和計算機犯罪就屬于這一類。此類攻擊又可以分為以下兩種:一種是主動攻擊,它以各種方式有選擇地破壞信息的有效性和完整性;另一類是被動攻擊,它是在不影響網(wǎng)絡正常工作的情況下,進行截獲、竊取、破譯以獲得重要機密信急。
??????? 3、用戶輸入驗證不全面
??????? 在網(wǎng)站編程中,對于用戶和用戶的輸入,都必須抱懷疑態(tài)度,不能完全信任。所以,對于用戶的輸入,不能簡單的直接采用,而必須經(jīng)過嚴格驗證,確定用戶的輸入是否符合輸入規(guī)則才可以錄入數(shù)據(jù)庫。用戶輸入驗證應該包括以下幾個方面:
??????? (1)輸入信息長度驗證。程序員往往認為一般用戶不會故意將輸入過分拉長,不進行輸入驗證可能沒有危害。但如果用戶輸入的信息達到幾個兆,而程序又沒有驗證長度的話,可以使程序驗證出錯或變量占用大量內(nèi)存,出現(xiàn)內(nèi)存溢出,致使服務器服務停止甚至關機。
??????? (2)輸入信息敏感字符檢查。在設計程序的時候,程序員可能都會關注JavaScript的一些敏感字符,如在設計留言版的時候,會將“<”等符號的信息過濾,以免用戶留下頁面炸彈。但還有以下幾個方面需要特別注意,一是留言版內(nèi)容信息的過濾。二是用戶名信息的過濾。程序設計中,對用戶名的驗證往往只是驗證長度,沒有驗證JavaScript或者HTML的標記,這樣就容易形成漏洞。三是Email信息的驗證,Email信息往往也只驗證是否含有“@”符號,其他沒有限制,這容易形成兩個漏洞:輸入信息過長的內(nèi)存溢出漏洞;含有JavaScript等字符信息,造成顯示用戶Email的時候形成頁面炸彈等。四是搜索信息的驗證。盡管搜索信息不會直接保存到網(wǎng)站服務器,但是,搜索信息卻與數(shù)據(jù)庫或者服務器所有文件密切相關,如果搜索信息有問題,很容易就會暴露一些本來不應該暴露的數(shù)據(jù)庫信息或者文件信息。如果用戶對程序比較了解,可設計一些很特別的搜索信息,檢索他不應該檢索的數(shù)據(jù)庫表,例如用戶賬號密碼表等。因此,一般要驗證一些常見的用于數(shù)據(jù)庫操作的語句,例如搜索信息是否含有“Select”等,這樣來限制用戶輸入,避免信息的泄露。