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