孫永蓬
【摘 要】現(xiàn)如今,在計算機信息技術(shù)快速發(fā)展的過程中,網(wǎng)絡(luò)安全逐漸成為計算機用戶與WEB程序員共同面對的一道難題。在借助信息技術(shù)的過程中,不乏侵犯者可以對多領(lǐng)域侵襲,引發(fā)互聯(lián)網(wǎng)安全等多項問題。作為一名WEB程序員,在編程腳本運行的過程中需要對各項漏洞進行檢測,并采取相應的防范措施,保證WEB編程腳本的安全。本文通過實例對WEB編程中存在的漏洞進行分析,并根據(jù)實際情況采取防范措施。
【關(guān)鍵詞】WEB編程 腳本漏洞 防范策略
1 引言
網(wǎng)絡(luò)信息技術(shù)的快速發(fā)展,促進了互聯(lián)網(wǎng)信息技術(shù)的廣泛應用。但是在互聯(lián)網(wǎng)應用的過程中,有一個問題成為其中影響最大的問題,即網(wǎng)絡(luò)安全問題。網(wǎng)絡(luò)安全問題的出現(xiàn),不僅僅影響用戶的使用效果,還會給營造和諧的網(wǎng)絡(luò)環(huán)境造成負面影響。在信息技術(shù)快速發(fā)展的過程中,如果網(wǎng)絡(luò)安全不能獲得有效的保證,將會給人們帶來潛在的經(jīng)濟損失。作為網(wǎng)絡(luò)中的一種編程,WEB編程腳本中存在的漏洞問題已經(jīng)逐漸一起人們的廣泛關(guān)注。人們在使用網(wǎng)絡(luò)的過程中,腳本運行是最為常見的,如果不能客觀準確地看待腳本中的漏洞,將會直接影響用戶使用互聯(lián)網(wǎng)的質(zhì)量,影響信息技術(shù)的快速發(fā)展。
2 WEB編程腳本的概述
腳本在網(wǎng)絡(luò)中的應用,隨處可見,較為常見的主要有ASP、PHP、ASPX以及JSP等腳本語言,各類腳本語言常見于新聞發(fā)布系統(tǒng)、電子商務(wù)系統(tǒng)以及BBS系統(tǒng)中。程序員在設(shè)計WEB程序的時候,重點放在程序編程方面,并未予以腳本漏洞過多的關(guān)注,進而給腳本漏洞的產(chǎn)生提供有力的條件[1]。根據(jù)腳本語言編程的情況可以這么說,對腳本漏洞的注意,避免黑客的侵襲。但是在腳本的定義方面,人們具有一定的疑惑,人們在使用網(wǎng)絡(luò)的過程中并不清楚腳本與HTML機編程語言的有何不同。從本質(zhì)上來說,腳本其實就是HTML與Pascal、C++、Java、VB、C #等相關(guān)編程語言之間的一種語言。在腳本運行的過程中,操作系統(tǒng)聯(lián)合腳本引擎以及腳本語言共同組合而成的一種工作方式。通常情況下,腳本語言并不是可以直接編譯成可執(zhí)行文件的,HTML在變成語言中屬于一種解釋性語言。從實際應用的過程中就了解到,腳本語言與編程語言的最大區(qū)別就在于編程語言的語法和規(guī)則更嚴格、更復雜。在實際應用腳本語言的過程中,就要保證腳本語言在服務(wù)器上正常的運行,需要在服務(wù)器端安裝腳本引擎,例如可以在ASP上安裝IIS,JSP上安裝JDK與RESIN,ASPX上安裝IIS與NET和FRAME等,腳本引擎需要為腳本主機提供環(huán)境,并對腳本程序中德腳本命令進行解釋。在對命令解釋完后,腳本引擎就會在將執(zhí)行結(jié)果一HTML的語言格式發(fā)送給客戶端。但是客戶端的瀏覽器是可以變量的形式,進而為腳本程序提供數(shù)據(jù)與指令。在實施的具體過程,將表單行使想WEB服務(wù)器發(fā)送變量,WEB服務(wù)器收到數(shù)據(jù)后就會將數(shù)據(jù)以某種形式儲存起來,隨后就會調(diào)用瀏覽器制定腳本程序來處理變量,在跳用腳本程序的時候,WEB服務(wù)器根據(jù)腳本程序的擴展名來啟動相應的腳本引擎解釋腳本運行的程序[2]。
3 腳本漏洞實例分析
通過前文的分析就可以知道,客戶端的瀏覽器會根據(jù)變量或者是命令的想腳本程序提交與之相應的數(shù)據(jù)和指令,而這就是所謂的編寫腳本程序。但是在編寫腳本程序的時候應當避免出現(xiàn)腳本程序處理數(shù)據(jù)和指令出現(xiàn)漏洞與缺陷
3.1 弱字符過濾
在WEB編程實施的過程中,為保證編程的準確性,需要對表單的各項數(shù)據(jù)進行處理,但是在此時處理的過程中應當特別注意,如果出現(xiàn)處理不當?shù)默F(xiàn)象,將會出現(xiàn)較多難以解決的問題。在提交數(shù)據(jù)的時候需要應用Javascript技術(shù),但是過濾技術(shù)在在應用的時候并沒有將這些問題作為關(guān)注的對象。如,用戶在表單中應用Javascript技術(shù),但是并沒有對其中的代碼采取過濾技術(shù),就有可能會造成用戶瀏覽表單死機的現(xiàn)象:
這樣的程序代碼粗略看過去根本就沒什么漏洞,但是實際上并不是這樣的,用戶在登錄也每年的時候name與passwor的文本框中都輸入"'or' '1'='1",提交到服務(wù)器,上面的sql語句就會變成:select * from pinfo where name=''or '1'='1' and psw='' or'1'='1'從這就可以顯然看出執(zhí)行后顯然rs.eof為真,用戶在江adim登錄標裝置為true,這樣攻擊者就會以管理員的身份登錄進admin.jsp頁面,而用戶在登以管理員的省份服務(wù)器后,就可能會向服務(wù)器傳木馬程序,進而就會造成服務(wù)器系統(tǒng)管理員的權(quán)限。就從下面的例子簡單的來看代碼過濾的Java代碼片斷:
3.2 不可忽視身份認證
現(xiàn)如今,黑客軟件到處泛濫,現(xiàn)如今在在網(wǎng)絡(luò)快速暢通的時候,將用戶使用的密碼破解并不是一件難事。現(xiàn)如今有一款比較有名的WEB密碼破解的軟件,名為溯雪??梢允褂帽┝ζ平饩W(wǎng)絡(luò)上的WEB表單的密碼。這樣操作的原理非常簡單,和可使用密碼字典里面的生成密碼文件,隨后不簡短的想服務(wù)器提交文字典表單的數(shù)據(jù)[3]。在此過程中,如果服務(wù)器返回,則就表示為ID和密碼,也就成功地將用戶密碼破解。當前大部分的網(wǎng)站就存在這樣的腳本漏洞,但是針對不同的腳本語言,在技術(shù)方面會面臨不同的問題。在預防攻擊Web表單來講,驗證碼通常是一個常見和有效的措施。基于此,在對一些public區(qū)域的頁面來說,就沒有安全措施,就可能會遭受到暴力破解。通常情況,用戶在登錄的時候會獲得一個隨機的驗證碼,用戶填寫驗證碼后,就能夠確保用戶是通過web的頁面來進行正常登入[4]。但是針對非法的途徑的登錄者,這個驗證碼通常是不存在的。但是雖然有這個驗證碼,攻擊者一樣可以截獲登錄Web頁面,進而搜索到驗證碼,這樣驗證碼的的保護措施就沒有意義。面對此種情況,可以通過驗證信息作為圖像的信息顯示在Web上,這樣再不阻礙合法用戶登錄的時候,非法登錄人員就不會通過html搜索到驗證信息,采用這樣的方式就能夠保證用戶新鮮全,也就保證了驗證信息的安全和正常的運行操作。如在登錄驗證碼的Java程序中,調(diào)用方法就是在 WEB 程序中添加:原理,在servlet中隨機生成一個4位數(shù)字1000-9999 然后把這數(shù)字寫入session,輸出一個圖片,上面寫有這四個數(shù)字,在服務(wù)器端根據(jù)用戶輸入的數(shù)字和,session中的值比較。
4 結(jié)語
總而言之,WEB編程腳本在實施的過程中會存在多項漏洞,而本文也僅是對常見的幾種漏洞進行論述,而針對漏洞的防范措施也并非僅僅是文中列舉的幾項,在面對漏洞不同的情況下,防范措施也就不同。
參考文獻:
[1] 解季萍,凌永發(fā).基于Web的遠程教學資源數(shù)據(jù)庫連接訪問機制研究[J].云南師范大學學報(自然科學版),2011,7(10):56-57.
[2] 劉雙虎.基于Web的網(wǎng)絡(luò)考試系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2012,8(10):78.
[3] 劉慶紅.基于Web的綜合教務(wù)管理信息系統(tǒng)的分析與設(shè)計[J].吉林省經(jīng)濟管理干部學院學報,2013,4(15):87.
[4] 段雪麗,楊恒.基于Web的數(shù)據(jù)挖掘方法的研究及實現(xiàn)[J].邢臺職業(yè)技術(shù)學院學報,2014,6(10):89.