国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP文件中的安全問題

2024-05-04 11:00:38
字體:
來源:轉載
供稿:網友

淺談ASP的安全問題
先說句牢騷話,我經常看到有人說ASP不安全,比如容易被注入,這種說法我一直感到無法理解。如果你水平不高,那么你用php用ASP.net用JSP都有被注入的可能,這關ASP什么事?ASP只是一種技術,用它開發的網站是否安全,只跟程序員和服務器管理員的水平有關系,任何技術開發的網站都一樣。只要你的程序有漏洞,而且你用的數據庫支持標準SQL語法,或者注入者會這種語法,那么就存在被注入的可能。
閑話少說,我今天結合我個人的經驗來簡單說說ASP中常見的安全問題。

一,注入。無論什么時候講到網站的安全問題,SQL注入都是首當其沖的。我們先來看看SQL注入是怎么回事。簡單的說,SQL注入就是通過各種方式傳遞非法的參數,其方式和目的無法是以下幾種:
·期望程序出錯,從而從服務器返回的錯誤信息中獲得一些注入者想要的東西,這種方法常用來判斷數據庫的類型。
·執行特殊語句,用來猜解表名等。
·構造特殊語句,這個常常就是用來繞過登錄檢測取得管理權限的。
針對以上問題,我一般采用以下的應對方法:
·前面兩種情況應該一起考慮。無論是哪種注入方式,其實都是通過構造非法的參數來實現的,那么我們就通過程序來限制參數,給合法的參數制定一個規則,不符合這個規則的就是非法的。但在檢測時經常見出現下面的錯誤:
1,用isnumeric函數來檢測id。這個函數僅僅是判斷是否是數字,僅此而已,那么如果我這樣輸入一個url:shownews.asp?id=1.1,那么也會通過檢測,因為1.1也是數字,或者id=0也行。有這樣的id嗎?沒有,任何數據庫表中的id都是從1開始的正整數。所以請大家不要這樣再使用它來檢測id的合法性。那用什么呢?這里就要用到正則表達式了。
可以通過id=cint(request("id"))或clng,或者就是用正則表達式替換所有的非數字字符,這樣就只有數字了。(asp下替換非數字為空的正則)

2,缺少錯誤處理,或錯誤處理不完善。比如rs.eof的情況,不加處理的話,我寫個id=999999999999999,那么程序就會出錯,我相信絕少有哪個網站有如此大的id,即使有我還可以換個更大的。我曾經就遇到過有人用工具連續試探我的id,從8000測試到10000多。還有就是type參數,一般網站的新聞都會分好幾個欄目,這時都依靠type來確定每個列表頁面該顯示哪個欄目的內容,如果有人提交一個不存在的type值呢?這也需要處理,select case中的case else子句就是為這種意外情況準備的,別為了省事不去用它。
·繞過登錄檢測的問題大多數是因為程序員把登錄檢測語句寫成這樣:
復制代碼 代碼如下:
Sql="Select count(*) from Admin Where UserName='"&UserName&"' and Pwd='"&Pwd&"'"

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵寿县| 屏山县| 瑞昌市| 儋州市| 定西市| 将乐县| 麟游县| 乌拉特中旗| 临颍县| 河津市| 武汉市| 景德镇市| 云安县| 彭山县| 新宁县| 垫江县| 高唐县| 仪征市| 平罗县| 安化县| 中江县| 汉阴县| 崇仁县| 卢龙县| 新和县| 靖远县| 鹤峰县| 江油市| 丹江口市| 远安县| 青岛市| 阜城县| 红桥区| 卓尼县| 湟源县| 全南县| 自治县| 定结县| 霞浦县| 凌云县| 桐梓县|