上一篇中給大家著重談了“ADO 存取數據庫時如何分頁顯示”的問題,有位朋友來信給我指出我在計算頁面總數時忽略了 Recordset 對象的一個重要參數“PageCount”,它能在給 Pagesize 賦值后自動得出頁面的總數,而無須用“INT(RS.recordcount/PgSz*-1)*-1”這樣繁瑣的公式。我要感謝這位朋友熱心地給我指出程序中的不足,由于這個程序是我在很久以前寫的,因為在分頁顯示的時候記錄的總數不一定能整除頁面顯示記錄的數目,而當時我又不能肯定 PageCount 是否能正確得出頁面的數目,所以偷懶寫了這個公式:),說實話我到現在還都沒試過用 pagecount,有興趣的朋友千萬要試一下哦,可別學我的懶惰呀。
最近我在 chinaasp 的 bbs 上討論問題時發現很多朋友對于 asp 的一些安全性問題不甚了解,甚至不知道如何解決最常見的 asp::$DATA 顯示源代碼的問題,因此我覺得非常有必要在這里給廣大朋友們重點談一談這個問題,在征得 chinaasp 飛鳥的同意下,我將他曾經寫過的一點關于 asp 漏洞的介紹加上我自己的一些實踐經驗拿出來給大家詳細分析一下這個對于 webmaster 來說至關重要的 asp 的安全性問題。
當去年 ::$DATA 的漏洞被發現并公布的第二天,我曾經檢測了當時國內大部分運用 asp 的站點,其中百分之九十九都存在以上可以看見源代碼的問題,當日我甚至在微軟的站點上抓下了 search.asp 這個文件的源代碼??赡苣銜X得看到源代碼并沒有什么大礙,如果作為 webmaster 的你這么想就大錯特錯了。譬如,如果 asp 程序員將站點的登陸密碼直接寫在 asp 里,那么一旦源碼被發現,他人就可以很容易的進入本不該被看到的頁面,我就曾經利用這個方法免費成為了一個收費網站的成員(大家可別揭發我哦?。?,而且很多數據庫的連接用戶名和密碼也都是直接寫在 asp 里,一旦被發現,如果你的數據庫允許遠程訪問而且沒有設防的話就相當危險了。在一些用 asp 開發的 bbs 程序中,往往使用的是 access mdb 庫,如果 mdb 庫存放的路徑被獲知,數據庫就很有可能被他人下載,加之如果數據庫里含有的密碼不加密,那就非常危險了,獲取密碼的人如果有意進行惡意破壞,他只需要以 admin 身份登陸刪除所有 bbs 里的帖子,就夠你嗆的了。下面列出了目前已經發現的一些漏洞,希望大家提高警惕一、經過實驗我們發現, win95+pws 上運行 ASP 程序,只須簡單地在瀏覽器地址欄的 asp 文件名后多加一個小數點 ASP 程序就會被下載下來。 IIS3 也存在同樣的問題,如果你目前還在使用 IIS3 一定要測試一下。
二、 iis2、 iis3、 iis4 的一個廣為人知的漏洞就是 ::$DATA,通過它使用 ie 的 view source 或 netscape 直接訪問該 asp 文件就能輕而易舉地看到 asp 代碼。 win98+pws4 不存在這個漏洞。
究竟是什么原因造成了這種可怕的漏洞呢?究其根源其實是 Windows NT 特有的文件系統在做怪。有一點常識的人都知道在 NT 提供了一種完全不同于 FAT 的文件系統: NTFS,這種被稱之為新技術文件系統的技術使得 NT 具有了較高的安全機制,但也正是因為它而產生了不少令人頭痛的隱患。大家可能不知道, NTFS 支持包含在一個文件中的多數據流,而這個包含了所有內容的主數據流被稱之為“DATA”,因此使得在瀏覽器里直接訪問 NTFS 系統的這個特性而輕易的捕獲在文件中的腳本程序成為了可能。然而直接導致 ::$DATA 的原因是由于 IIS 在解析文件名的時候出了問題,它沒有很好地規范文件名。
我們該如何解決這個問題呢?辦法有幾種:
a、是將 .asp 文件存放的目錄設置為不可讀(ASP 仍能執行),這樣 html、 css 等文件就不能放在這個目錄下,否則它們將不能被瀏覽。
b、是安裝微軟提供的補丁程序,下載的地址如下(注意針對不同的系統有不同
Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號 google網站地圖 百度網站地圖 網站地圖
公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752
法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明