999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ASP代碼安全性解析及黑客入侵防范方法

2008-12-31 00:00:00鄒本娜
電腦知識與技術 2008年34期

摘要:介紹了ASP的工作機理和用ASP開發網站存在的安全性問題,提出了相應的解決方法。并給出一些提高ASP安全性的建議。這些方法也適用于分析和解決其他ASP的安全漏洞。

關鍵詞:ASP;腳本;加密;數據庫

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)34-1848-02

Talking about the Security of ASP Code and the Defence Measure for Hacker

ZOU Ben-na

(Party School of Huludao City, Huludao 125000, China)

Abstract: This introduces the working mechanism and web security of ASP, and sets out some measures. In this paper, some advice is put forward to improve the web security of ASP. And these analyses and measures are also befitting for other kinds of ASP leak.

Key word: ASP; script; encrypt; data-base

1 引言

現在的SQL注入攻擊很嚴重,各大網站幾乎都有被攻擊的經歷。由于ASP的易學性和普遍性,很多站點都選擇了使用ASP語言來共建自己的Web站點。

Microsoft Active Server Pages(ASP)是服務器端腳本編寫環境,使用它可以創建和運行動態、交互的Web服務器應用程序。微軟推出的IS+ASP的解決方案作為一種典型的服務器端網頁設計技術,被廣泛應用在網上銀行、電子商務、聊天室、搜索引擎等各種互聯網應用中。ASP是開發網站應用的快速工具,但是有些網站管理員只看到ASP的快速開發能力,卻忽視了ASP安全問題。本文試圖從開放了ASP服務的操作系統漏洞和ASP程序本身漏洞闡述ASP的安全問題,并給出解決方法或者建議。

由于ASP的方便易用,越來越多的網站后臺程序都使用ASP腳本語言。但是, 由于ASP本身存在一些安全漏洞,稍不小心就會給黑客提供可乘之機。事實上,安全不僅是網管的事,編程人員也必須在某些安全細節上注意,養成良好的安全習慣,否則會給自己的網站帶來巨大的安全隱患。目前,大多數網站上的ASP程序有這樣那樣的安全漏洞,但如果編寫程序的時候注意一點的話,還是可以避免的[1]。

ASP語言為腳本級變成語言,是以VB Script或者JAVA Script為基礎的,更多的站點選擇了VBScript對異常進行的捕捉(Debug)和數據類型的聲明要求都相對JAVA Script寬松得多,沒有強制要求,這樣帶來了方便也帶來了隱患(由于一些程序員的習慣,在使用VBScript編寫ASP程序時常常忽略了對機場的捕捉(Debug)和數據烈性的聲明),所以在防止Web注入攻擊方面就想的“心有余,而力不足”。

2 防止文件被非法下載

2.1 避免包含文件被下載

在網站設計中,為了便于管理和維護,我們常將程序設計成多個模塊,然后用服務器的包含文件命令將各模塊包含在某一程序當中[2]。過去許多程序員喜歡將這些文件以*.inc形式命名,但是ASP腳本環境只能解釋以特定后綴名的文件,如*.asp,*.asa,*.htm等,對于*.inc的文件,ASP腳本環境無法對其解釋,web服務器則將其直接下載到本地瀏覽器,從而暴露ASP程序的各種重要信息。為避免這種情況發生,我們將*.inc改名為*.asp,這樣即使包含文件的地址暴露,瀏覽者也無法將其源碼下載到本地。

2.2 避免Access數據庫文件被下載

用Access數據庫結合ASP編制小型Web程序,簡單實用,深受廣大程序員的喜愛,但是用這種方式編程需將Ac-cess的數據庫文件存于ASP程序目錄之下,如同上面的第一點所論述的一樣,一旦瀏覽者獲知了數據庫文件的具體地址,數據庫文件將會被瀏覽者下載到本地,從而暴露大量的重要信息。但是我們如果將Access數據庫的文件*.mdb改名為*.asp或*.asa,則即使瀏覽者獲知了數據庫文件的具體地址,當瀏覽者試圖下載這些*.asp文件時,瀏覽者將會碰到訪問錯誤,數據庫在瀏覽器以亂碼顯示,同時在數據庫的連接字符串,我們將相應的*.mdb改為*.asp或*.asa并不會影響程序對數據庫的正常訪問。

2.3 防止下載地址暴露

有時為了方便使用或其它一些原因,我們想將某些程序或資料提供下載但同時對些文件或資料下載時能進行訪問授權控制,因此我們不能暴露我們的下載地址。我們可將文件或資料下載地址存儲在數據庫中,需要時再動態地從數據庫中提取這些地址,最后我們用的地址轉移語句(Response.Redirect\"\")將文件或資料直接下載到客戶端,這樣客戶端將只會顯示文件名而不會顯示具體的下載地址,從而達到了隱藏下載地址的目的[3]。

3 數據庫安全

3.1 設定合適權限的數據庫用戶

現在較為大型的ASP程序多采用SQL數據庫,SQL數據庫安裝時默認的用戶是Sa,許多程序員喜歡將此用戶作為Web程序訪問數據庫的用戶,這是非常危險的作法,因為Sa在SQL數據庫中具有超級用戶的權限,它可以操作任何數據庫,并可操作注冊表,甚至能執行外部程序,一旦黑客通ASP程序非法入侵SQL數據庫,后果將不堪設想。因此我們在使用SQL數據庫作為ASP程序的后臺數據庫時,一定要為ASP程序設定一個只能訪問必要數據庫的SQL數據庫用戶,這樣系統的安全性將得到極大提高[4]。

過濾變量輸入中的非法字符和改造危險的SQL語句黑客通ASP程序非法入侵數據庫,大多是利用ASP程序中的SQL語句設計漏洞構造疇型的SQL語句達到入侵數據庫的目的,如很多網站把用戶名和密碼放到數據庫中,在登陸驗證時用以下sql:

sql=\"select*from user where username='\"username\"'and pass='\"pass'\"

此時我們只要構造一個特殊的用戶名:如ben'or'1'='1,此時實際訪問數據庫的sql語句將變為:

sql=\"select*from user where username='ben'or'1'='1'and pass='\"'\"pass'\"

由于'1'='1'永遠為真,這個語句將返回真值,所以驗證通過。對于這類入侵,我們一方面要改造我們的sql語句,如上述語句可改為:

sql=\"select*from user where username='\"username\"'

查詢數據庫后,取得結果集Rs,再以下方式判別:

If Not Rs.Eof Then

If Rs(\"password\")=password Then

授權進入

Else

拒絕訪問

End If

Else

拒絕訪問

在無法判斷我們的SQL語句是否安全時,一種更通用的辦法是將變量傳給SQL語句時,對變量進行過濾,如:

Replace(Str,\"'\",\"''\")'過濾逗號

Replace(Str,\";\",\"\")'過濾分號

Replace(Str,\"-\",\"\")'過濾\"-\"

或判斷用戶輸入數據的類型:

IfIsNumeric(Request.QueryString(\"ID\")=FalseThen

Response.Write(\"非法輸入\")

Response.End

End If

經過變量過濾后,大量SQL入侵將難于成功。

3.2 限制站外數據提交和頁面的直接訪問

有很多時候,SQL入侵是通過在瀏覽器地址欄中直接構造精心設計的SQL查詢語句或通過網頁中構造偽造的查詢表單向服務器提供虛假數據,達到欺騙服務器的目的,這是一種通過站外提交數據入侵服務器的方法。對于這類入侵,通常有兩種方法進行防范。

一種方法是在需要控制訪問的頁面加入Session變量一旦瀏覽者試圖直接訪問受控制訪問的頁面時,當程序判定特定的Session變量為空時,則強制將頁面轉向訪問的起始頁。這種方法通常對需要提供密碼才能訪問的頁面比較有效。設計者需要注意的是,在合法訪問結束后,要注意通過將特定的Session變量賦值為空或用Session.Abandon語句將所有Session變量釋放。這種方法的缺點有三點:

1) 當用戶的訪問量很大時,服務器上的Session變量的資源銷耗將很大。

2) Session變量的機制在客戶端實際上是通過Cookie方式來實現的,客戶有時為了安全會將Cookie功能關掉,這將使瀏覽者無法訪問有Session變量控制的網頁。

3) 當程序的特定Session變量還處于活動期間,程序也無法控制瀏覽者的站外數據提交[5]。

3.3 數據庫內容加密

一般情況下,用來驗證用戶合法身份的賬戶信息都存儲在數據庫中,通常情況下程序員都以明文形式將賬戶信息存儲在數據庫中,這種情況使程序存在極大的安全隱患,一旦數據庫被黑客意外獲取,賬戶信息將暴露無疑。如果我們將賬戶信息加密后存儲于數據庫中,將大大增加黑客獲賬戶信息的難度,從而增加web程序的安全性。

3.4 ASP安全建議

1) 安裝NT最新的補丁。微軟的主頁有最新的補丁,一般來說微軟都會及時公布最新的漏洞和補丁。

2) 關閉沒有用的服務和協議。“盡量少開沒用到的服務”,這永遠是網絡安全的準則。如果開啟了某個服務,你就要面對不少的漏洞困擾,更重要的是你還要時時提防未來由這個服務所引起的漏洞。

3) 設置好你的服務器,盡量不使用遠程管理軟件,關閉不用的TCP /IP的端口。

4) 磁盤格式使用比較安全的NTFS格式,并設置各目錄的屬性。

5) 不要把密碼、物理路徑直接寫在程序中,把用戶名和密碼保存在虛擬路徑的數據庫中。

6) 使用日志將用戶的瀏覽器、用戶停留的時間、用戶IP、其他管理員操作記錄等信息保存起來。

7) 使用身份驗證機制保護被限制的ASP內容。

8) 保護源數據庫,訪問源數據庫的ASP腳本需要Web服務器所運行的計算機的管理員權限。

9) 安裝放火墻。

10) 使用SSL維護應用程序的安全。

4 結束語

本文分析了ASP服務器端腳本編寫環境存在的一些安全方面的漏洞和幾種常見的保護ASP代碼安全的方法。現在很多網站特別是電子商務網站,在前臺大都用ASP來實現。ASP是開發網站應用的快速工具,但是除了利用ASP的快速開發能力外,還應考慮ASP安全問題,特別是涉及到公司的保密技術或產品信息等,盡量避免因程序中存在漏洞降低數據的安全性。

參考文獻:

[1] 儲岳中.ASP.NET應用程序安全缺陷及預防策略[J].安徽工業大學學報,2007(7).

[2] 陳波,楊宜民.ASP環境下的網絡安全分析[J].微機發展,2003,12(13).

[3] 王國榮.ActiveServerh9 esWeb數據庫[M].北京:北京人民郵電出版社, 2000.

[4] 張文增,林曉森.ASP網站安全研究[J].計算機工程,2002,28(3).

[5] 張海林,杜忠友.基于ASP.NET技術的安全網站設計[J].商場現代化,2007(2).

主站蜘蛛池模板: 国产成人亚洲精品无码电影| 亚洲三级a| 日本欧美视频在线观看| 日韩天堂视频| 91精品啪在线观看国产60岁| 日韩无码视频播放| 国产爽妇精品| 美女黄网十八禁免费看| 精品国产www| 久久精品午夜视频| 亚洲人成影视在线观看| 国产一区二区三区在线观看视频| 免费一级大毛片a一观看不卡| 日韩在线欧美在线| 特黄日韩免费一区二区三区| 精品无码国产一区二区三区AV| 国产中文一区a级毛片视频| 亚洲专区一区二区在线观看| 手机在线免费不卡一区二| 成人日韩视频| 国产va在线观看免费| 动漫精品啪啪一区二区三区| 国产成人a在线观看视频| 国产亚洲高清在线精品99| 性欧美精品xxxx| 97se亚洲综合在线天天 | 亚洲人成影院在线观看| 日韩av资源在线| 国产剧情一区二区| a级毛片免费看| 高清色本在线www| 国产免费福利网站| 国产精品va免费视频| 亚洲天堂在线视频| 97综合久久| 国产福利免费视频| 日韩天堂在线观看| 亚洲不卡影院| 高潮爽到爆的喷水女主播视频| 亚洲天堂色色人体| 蜜桃视频一区| 欧美成a人片在线观看| 国产99在线观看| 欧美亚洲国产精品第一页| 国产在线精品人成导航| 啪啪永久免费av| 麻豆国产在线观看一区二区| 久久香蕉国产线看精品| 色偷偷一区二区三区| 老司机午夜精品视频你懂的| 97久久人人超碰国产精品| 国产丰满成熟女性性满足视频| 久久久受www免费人成| 在线毛片免费| 亚洲天堂伊人| 好紧好深好大乳无码中文字幕| 国产在线自乱拍播放| 亚洲美女一区二区三区| 99热这里只有精品免费| 美女内射视频WWW网站午夜| 国产91精品久久| 日韩视频福利| 日韩黄色大片免费看| 人妻无码中文字幕一区二区三区| 婷婷色一二三区波多野衣| 91啪在线| 亚洲av无码牛牛影视在线二区| 欧美在线精品一区二区三区| 精品少妇人妻无码久久| 日韩免费毛片视频| 欧美a级完整在线观看| 亚洲色精品国产一区二区三区| 免费xxxxx在线观看网站| 国产精品人莉莉成在线播放| 不卡午夜视频| 亚洲黄色网站视频| 国产激情无码一区二区免费| 亚洲欧洲日韩综合| 成人精品免费视频| 激情综合图区| 欧美特黄一免在线观看| 国产精品私拍99pans大尺度|