?? page13.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>維護 ASP 應用程序的安全</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="Microsoft Border" content="none">
</head>
<body background="../../images/exptextb.jpg">
<!-- Spidersoft WebZIP Ad Banner Insert -->
<!-- End of Spidersoft WebZIP Ad Banner Insert-->
<p><font FACE="宋體" size="3"><strong>維護 ASP 應用程序的安全</strong></font></p>
<p><font FACE="宋體" SIZE="2">千萬不要輕視正確配置安全設置的重要性。如果不正確配置安全設置,不但會使您的
ASP 應用程序遭受不必要的篡改,而且會妨礙正當用戶訪問您的 .asp
文件。</p>
<p>Web 服務器提供了各種方法來保護您的 ASP
應用程序免受未授權的訪問和篡改。在您讀完本主題下的安全信息之后,請花一定的時間仔細檢查一下您的
Windows NT 和 Web 服務器安全性文檔。詳細信息,請參閱 安全性。</p>
<p><strong>NTFS 權限</strong></p>
<p>您可以通過為單獨的文件和目錄應用 NTFS 訪問權限來保護 ASP
應用程序文件。NTFS 權限是 Web
服務器安全性的基礎,它定義了一個或一組用戶訪問文件和目錄的不同級別。當擁有
Windows NT
有效帳號的用戶試圖訪問一個有權限限制的文件時,計算機將檢查文件的
訪問控制表 (ACL)。該表定義了不同用戶和用戶組所被賦予的權限。如果用戶的帳號具有打開文件的權限,計算機則允許該用戶訪問文件。例如,Web
服務器上的 Web
應用程序的所有者需要有“更改”權限來查看、更改和刪除應用程序的
.asp
文件。但是,訪問該應用程序的公共用戶應僅被授予“只讀”權限,以便將其限制為只能查看而不能更改應用程序的
Web 頁。</p>
<p><strong>維護 Global.asa 的安全</strong></p>
<p>為了充分保護 ASP 應用程序,一定要在應用程序的 Global.asa
文件上為適當的用戶或用戶組設置 NTFS 文件權限。如果 Global.asa
包含向瀏覽器返回信息的命令而您沒有保護 Global.asa
文件,則信息將被返回給瀏覽器,即便應用程序的其他文件被保護。</p>
</font>
<p><font FACE="宋體" SIZE="2">有關配置 NTFS 權限的詳細信息,請參閱
訪問控制。</p>
</font>
<p><font FACE="宋體" SIZE="2">注意 一定要對應用程序的文件應用統一的
NTFS
權限。例如,如果您不小心過度限制了一應用程序需要包含的文件的
NTFS
權限,則用戶可能無法查看或運行該應用程序。為了防止此類問題,在為您的應用程序分配
NTFS 權限之前應仔細計劃。</p>
<p><strong>Web 服務器權限</strong></p>
<p>您可以通過配置您的 Web
服務器的權限來限制所有用戶查看、運行和操作您的 ASP
頁的方式。不同于 NTFS
權限提供的控制特定用戶對應用程序文件和目錄的訪問方式, Web
服務器權限應用于所有用戶,并且不區分用戶帳號的類型。</p>
<p>對于要運行您的 ASP 應用程序的用戶,在設置 Web
服務器權限時,必須遵循下列原則:</p>
<p>對包含 .asp 文件的虛擬目錄允許“讀”或“腳本”權限。 </p>
<p>對 .asp 文件和其他包含腳本的文件(如 .htm
文件等)所在的虛目錄允許“讀”和“腳本”權限。 </p>
<p>對包含 .asp 文件和其他需要“執行”權限才能運行的文件(如 .exe
和 .dll 文件等)的虛目錄允許“讀”和“執行”權限。 </p>
<p>有關配置 Web 服務器權限的詳細信息,請參閱 訪問控制。</p>
<p><strong>腳本映射文件</strong></p>
<p>應用程序的腳本映射保證了 Web 服務器不會意外地下載 .asp
文件的源代碼。例如,即使您為包含了某個 .asp
文件的目錄設置了“讀”權限,只要該 .asp
文件隸屬于某個腳本映射應用程序,那么您的 Web
服務器就不會將該文件的源代碼返回給用戶。</p>
<p><strong>Cookie 安全性</strong></p>
<p>ASP 使用 SessionID cookie 跟蹤應用程序訪問或會話期間特定的 Web
瀏覽器的信息。這就是說,帶有相應的 cookie 的 HTTP
請求被認為是來自同一 Web 瀏覽器。Web 服務器可以使用 SessionID cookies
配置帶有用戶特定會話信息的 ASP
應用程序。例如,如果您的應用程序是一個允許用戶選擇和購買 CD
唱盤的聯機音樂商店,就可以用 SessionID
跟蹤用戶漫游整個應用程序時的選擇。</p>
<p><strong>SessionID 能否被黑客猜中?</strong></p>
<p>為了防止計算機黑客猜中 SessionID cookie
并獲得對合法用戶的會話變量的訪問,Web 服務器為每個 SessionID
指派一個隨機生成號碼。每當用戶的 Web 瀏覽器返回一個 SessionID
cookie 時,服務器取出 SessionID
和被賦予的數字,接著檢查是否與存儲在服務器上的生成號碼一致。若兩個號碼一致,將允許用戶訪問會話變量。這一技術的有效性在于被賦予的數字的長度(64
位),此長度使計算機黑客猜中 SessionID
從而竊取用戶的活動會話的可能性幾乎為 0。</p>
<p><strong>加密重要的 SessionID Cookie</strong></p>
<p>截獲了用戶 sessionID cookie 的計算機黑客可以使用此 cookie
假冒該用戶。如果 ASP
應用程序包含私人信息,信用卡或銀行帳戶號碼,擁有竊取的 cookie
的計算機黑客就可以在應用程序中開始一個活動會話并獲取這些信息。您可以通過對您的
Web 服務器和用戶的瀏覽器間的通訊鏈路加密來防止 SessionID cookie
被截獲。有關加密的詳細信息,請參閱 安全性。</p>
<p><strong>使用身份驗證機制保護被限制的 ASP 內容</strong></p>
<p>您可以要求每個試圖訪問被限制的 ASP 內容的用戶必須要有有效的
Windows NT 帳號的用戶名和密碼。每當用戶試圖訪問被限制的內容時,Web
服務器將進行身份驗證,即確認用戶身份,以檢查用戶是否擁有有效的
Windows NT 帳號。</p>
<p>Web 服務器支持以下幾種身份驗證方式:</p>
<p>基本身份驗證 提示用戶輸入用戶名和密碼。 </p>
<p>Windows NT 請求/響應式身份驗證 從用戶的 Web
瀏覽器通過加密方式獲取用戶身份信息。 </p>
<p>然而,Web 服務器僅當禁止匿名訪問或 Windows NT
文件系統的權限限制匿名訪問時才驗證用戶身份。詳細信息,請參閱
關于身份驗證。</p>
<p><strong>保護元數據庫</strong></p>
<p>訪問元數據庫的 ASP 腳本需要 Web
服務器所運行的計算機的管理員權限。在從遠程計算機上運行這些腳本時,須經已通過身份驗證的連接,如使用
Windows NT 請求/響應驗證方式進行連接。應該為管理級 .asp
文件創建一個服務器或目錄并將其目錄安全驗證方式設置為 Windows NT
請求/響應式身份驗證。目前,僅 Microsoft Internet Explorer version 2.0
或更高版本支持 Windows NT 請求/響應式身份驗證。</p>
<p><strong>使用 SSL 維護應用程序的安全</strong></p>
<p>Secure Sockets Layer (SSL) 3.0 協議作為 Web
服務器安全特性,提供了一種安全的虛擬透明方式來建立與用戶的加密通訊連接。SSL
保證了 Web 內容的驗證,并能可靠地確認訪問被限制的 Web
站點的用戶的身份。</p>
<p>通過 SSL,您可以要求試圖訪問被限制的 ASP
應用程序的用戶與您的服務器建立一個加密連接;以防用戶與應用程序間交換的重要信息被截取。詳細信息,請參閱
加密。 </p>
<p><strong>維護包含文件的安全</strong></p>
<p>如果您從位于沒有保護的虛擬根目錄中的 .asp
文件中包含了位于啟用了 SSL 的目錄中的文件,則 SSL
將不被應用于被包含文件。因此,為了保證應用 SSL,應確保包含及被包含的文件都位于啟用了
SSL 的目錄中。</p>
<p><strong>客戶資格認證</strong></p>
<p>控制對您的 ASP
應用程序訪問的一種十分安全的方法是要求用戶使用 客戶資格
登錄。客戶資格是包含用戶身份信息的數字身份證,它的作用與傳統的諸如護照或駕駛執照等身份證明相同。用戶通常從委托的第三方組織獲得客戶資格,第三方組織在發放資格證之前確認用戶的身份信息。(通常,這類組織要求姓名、地址、電話號碼及所在組織名稱;此類信息的詳細程度隨給予的身份等級而異。)</p>
<p>每當用戶試圖登錄到需要資格驗證的應用程序時,用戶的 Web
瀏覽器會自動向服務器發送用戶資格。如果 Web 服務器的 Secure Sockets
Layer (SSL) 資格映射特性配置正確,那么服務器就可以在許可用戶對
ASP 應用程序訪問之前對其身份進行確認。</p>
<p><strong>用于處理資格證明的 ASP 腳本</strong></p>
<p>作為 ASP
應用程序開發人員,您可以編寫腳本來檢查資格是否存在并讀取資格字段。例如,您可以從資格證明中訪問用戶名字段和公司名字段。Active
Server Pages 在 Request 對象的 ClientCertificate
集合中保存資格信息。詳細信息,請參閱 ASP 內建對象。</p>
<p>必須將 Web 服務器配置為接受或需要客戶資格,然后才能通過 ASP
處理客戶資格;否則,ClientCertificate 集合將為空。</p>
<p> </p>
<p>--------------------------------------------------------------------------------</p>
</font>
<p><font FACE="宋體" size="3"><strong>創建事務性腳本</strong></font></p>
<p><font FACE="宋體" SIZE="2">商業應用程序常常需要具有在事務內部運行腳本和組件的能力。事務是一種服務器操作,即使該操作包括很多步驟(例如,定貨、查看存貨、付帳等),也只能整體返回操作是成功還是失敗。用戶可以創建在事務內部運行的
ASP 腳本,如果腳本的任何一部分失敗,整個事務都將會終止。</p>
<p>ASP 事務處理是以 Microsoft? Transaction Server (MTS) 為基礎的。Microsoft?
Transaction Server (MTS)
是一個事務處理系統,用于開發、配置和管理高性能、可分級的、有魯棒性的企業
Internet 和 Intranet 服務器應用程序。Transaction Server
為開發分布式的,基于組件的應用程序提供了一個應用程序設計模型。它也為配置和管理這些應用程序提供了一個運行環境。</p>
<p>創建事務性腳本的功能內置在 Internet Information Server 和 Personal Web
Server 中。如果您安裝了 Microsoft Transaction Server,就可以將組件打包,以使組件在事務內部運行。有關組件打包的詳細信息,請參閱
創建 MTS 包。</p>
<p><strong>關于事務</strong></p>
<p>事務是整體成功或失敗的操作。事務處理用于對數據庫進行可靠地更新。在對數據庫進行許多相關更改或同時更新多個數據庫時,要保證所有更改都被正確執行。如果這些更改中的任何一個失敗,都需要恢復數據庫表的原始狀態。</p>
<p>如果沒有 MTS,您就需要編寫腳本和組件,手工跟蹤請求的更改情況,以便在某些更改失敗時恢復數據。使用
MTS,您只需簡單的將您的腳本和組件聲明為“需要事務”并讓 MTS
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -