王命全,張祖蓮,李景林
(新疆氣象局 新疆興農(nóng)網(wǎng)信息中心,新疆 烏魯木齊 830002)
目前網(wǎng)絡(luò)攻擊現(xiàn)象十分嚴(yán)重,給很多企業(yè)和單位造成很大程度的破壞。網(wǎng)絡(luò)安全問(wèn)題一直是很多單位重視的問(wèn)題。目前所有交互性系統(tǒng)或用戶查詢系統(tǒng)類,都需要涉及到登錄窗口。網(wǎng)絡(luò)攻擊者也主要是攻破登錄窗口這個(gè)界面,才能進(jìn)入應(yīng)用系統(tǒng),進(jìn)行操作相關(guān)的數(shù)據(jù)或應(yīng)用程序??梢姷卿洿翱趯?duì)系統(tǒng)的作用是至關(guān)重要的?,F(xiàn)在Web系統(tǒng)直接部署在網(wǎng)絡(luò)上,任何人都可以訪問(wèn)到,安全問(wèn)題是很多系統(tǒng)擔(dān)心的問(wèn)題。
本文的防Web攻擊登錄窗口設(shè)計(jì)主要從程序設(shè)計(jì)角度來(lái)講,針對(duì)一般的Web系統(tǒng),例如論壇、留言等用戶能自己登錄后發(fā)布信息的窗口。對(duì)于銀行等安全性要求極高的系統(tǒng)來(lái)說(shuō),除了本身的Web設(shè)計(jì)外,還必須借助其他如U盾等外界硬件設(shè)備來(lái)保證其足夠安全性。
(1)基于可信平臺(tái)模塊(TPM)的用戶登錄可信認(rèn)證。該認(rèn)證方式是利用PC機(jī)USB接口外接TPM,將用戶的身份信息、相關(guān)的密鑰信息等存儲(chǔ)在TPM中,并利用USBKEY技術(shù)、動(dòng)態(tài)的口令技術(shù)來(lái)確保用戶身份的真實(shí)可信[1];(2)用戶登錄端程序嵌入到還原程序當(dāng)中通信代理服務(wù),用戶端和服務(wù)器端分開響應(yīng)[2]。
以上的研究主要從硬件來(lái)考慮,對(duì)于一般的論壇類系統(tǒng)不可能讓每個(gè)用戶發(fā)篇帖子還要單獨(dú)配置相關(guān)的硬件。
(1)以著名的 RSA算法和 DES算法為基礎(chǔ),提出一種互補(bǔ)性的混合數(shù)據(jù)加密方案及其實(shí)現(xiàn)過(guò)程[3];(2)安全減少用戶登錄次數(shù),在分布式環(huán)境中基于Web服務(wù)的用戶單點(diǎn)登錄機(jī)制,使得用戶只需登錄一次即可完成復(fù)雜業(yè)務(wù)[4]。
過(guò)濾特殊字符,分配數(shù)據(jù)庫(kù)賬戶權(quán)限,正確使用存儲(chǔ)過(guò)程,確保輸入的合法性,對(duì)敏感數(shù)據(jù)加密存儲(chǔ),嚴(yán)格進(jìn)行錯(cuò)誤處理[5]。此研究主要從軟件設(shè)計(jì)上考慮,用戶可以借鑒,設(shè)計(jì)考慮的并不全面,對(duì)于不同的攻擊不一定能很好地預(yù)防。關(guān)于數(shù)據(jù)庫(kù)設(shè)置,對(duì)于網(wǎng)絡(luò)管理員來(lái)說(shuō),可以借鑒。
本文主要從軟件設(shè)計(jì)方面來(lái)考慮不同用戶不同需要及各種有關(guān)預(yù)防策略。
登錄窗口要設(shè)計(jì)好,首先考慮的方面要全,攻擊者不可能用所有的方法去試探,但僅用其中的部分要素就可以。本文將列出一部分常見的實(shí)用的攻擊及預(yù)防的策略。
(1)防 SQL注入漏洞攻擊
目前很多登錄程序在設(shè)計(jì)上存在一個(gè)很大的隱患就是直接寫SQL語(yǔ)句進(jìn)行驗(yàn)證登錄,即黑客輸入任意的用戶名、密碼后,只要在后面輸入“′1′or′1′=′1′”成為選擇語(yǔ)句,驗(yàn)證就會(huì)輕松通過(guò),進(jìn)入后臺(tái),訪問(wèn)數(shù)據(jù)庫(kù)。換一種方法去驗(yàn)證用戶名和密碼,就可以有效地預(yù)防這類現(xiàn)象。
代碼例如:
(2)加入輸入密碼次數(shù)
目前電腦配置也越來(lái)越高,很多相關(guān)黑客破解密碼的軟件,黑客會(huì)用一個(gè)配置較好的主機(jī)去破解用戶名的密碼,直到破解為止,計(jì)算機(jī)的運(yùn)行速度特別快,一般數(shù)字密碼很快就會(huì)破解。因此在登錄窗口要設(shè)置用戶登錄輸入密碼的次數(shù),如輸入密碼次數(shù)不超過(guò)3次,這樣才能大大減少被破解的機(jī)會(huì)。如果用戶登錄成功,錯(cuò)誤次數(shù)會(huì)自動(dòng)清零。以免影響正常用戶的正常登錄。
核心代碼例如:
(3)限制同一IP多次申請(qǐng)注冊(cè)
如果用戶一直注冊(cè),當(dāng)作攻擊的一種類型,當(dāng)申請(qǐng)次數(shù)達(dá)到一定數(shù)據(jù),該用戶不能再申請(qǐng)。主要由瀏覽器緩存暫時(shí)存下用戶的相關(guān)信息如IP等,用于記錄用戶申請(qǐng)帳戶次數(shù)。
核心代碼:
(6)重要的應(yīng)用登錄后寫入注冊(cè)表
輸入正確用戶名和密碼后,寫入注冊(cè)表,即使該用戶暫時(shí)沒(méi)權(quán)限,發(fā)生異常,則寫入XML。
核心代碼如下:
(7)對(duì)鍵盤上的回車進(jìn)行處理
相關(guān)代碼(用戶按鍵盤Enter也可以登錄):
(9)添加驗(yàn)證碼
目前網(wǎng)絡(luò)上有多種驗(yàn)證碼,稍加修改,明白其中的成圖原理,都可以改成自己常用的開發(fā)語(yǔ)言進(jìn)行使用。
例如下面生成驗(yàn)證碼相關(guān)核心代碼:
(10)客戶端和服務(wù)器端都驗(yàn)證,防止黑客禁掉客戶端程序
登錄是用戶進(jìn)入系統(tǒng)的首要窗口,攻破登錄,對(duì)非法用戶操作數(shù)據(jù)就很容易了,開發(fā)Web程序時(shí)應(yīng)當(dāng)重視登錄窗口的設(shè)計(jì),做好程序代碼的安全性檢查,設(shè)置好服務(wù)器和數(shù)據(jù)庫(kù)的安全,雖然沒(méi)有絕對(duì)的安全,但各種方面小心防范,就可以從很大程度上保證Web服務(wù)器的安全。
本文從以上10個(gè)方面考慮防Web攻擊登錄窗口設(shè)計(jì),設(shè)計(jì)的登錄窗口系統(tǒng)已在實(shí)際系統(tǒng)中使用一年半時(shí)間,目前發(fā)現(xiàn)攻擊的次數(shù)越來(lái)越少。隨著網(wǎng)絡(luò)的發(fā)展,可能有更多的情況需要考慮,本文將不斷優(yōu)化改進(jìn)。
[1]譚良,周明天.一種新的用戶登錄可信認(rèn)證方案的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2007,27(5):1070-1072.
[2]王書海,劉明生,肖眾.機(jī)房管理系統(tǒng)用戶登錄認(rèn)證方案設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2008,24(2):37-38.
[3]伍華健.公開密鑰密碼體系在網(wǎng)絡(luò)安全中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2006,22(43):14-17.
[4]胡毅時(shí),懷進(jìn)鵬.基于Web服務(wù)的單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)[J].北京航空航天大學(xué)學(xué)報(bào),2004,30(3):236-239.
[5]郜激揚(yáng).基于Web服務(wù)的數(shù)據(jù)庫(kù)注入攻擊與防范[J].華北水利水電學(xué)院學(xué)報(bào),2008,29(1):89-91.