使用ASP開發網頁需要牢記的9個注意事項
永遠不要相信用戶輸入的內容具有適當的大小或者包含適當的字符。在使用其做出決策之前應該始終對用戶輸入進行驗證。最佳的選擇是創建一個 COM+ 組件,...
1、永遠不要相信用戶輸入的內容具有適當的大小或者包含適當的字符。在使用其做出決策之前應該始終對用戶輸入進行驗證。最佳的選擇是創建一個 COM+ 組件,這樣您可以從 ASP 頁面中調用該組件來驗證用戶的輸入內容。您也可以使用 Server.HTMLEncode 方法、Server.URLEncode 方法,或者本頁底部代碼示例中的某一個。
2、不要通過連接用戶輸入的字符串來創建 ASP 頁中的數據庫連接字符串。惡意用戶可以通過在他們的輸入內容中插入代碼來獲取數據庫的訪問權限。如果您使用的是 SQL 數據庫,那么請使用存儲過程創建數據庫連接字符串。
3、不要使用默認的 SQL 管理員帳戶名 sa。每個使用 SQL 的用戶都知道存在 sa 帳戶。創建具有安全可靠密碼的其他 SQL 管理帳戶,并刪除 sa 帳戶。
4、在您存儲客戶端用戶密碼之前,請對這些密碼使用哈希算法、進行 base64 編碼,或者使用 Server.HTMLEncode 或者 Server.URLEncode 進行編碼。您還可以使用本頁底部的某個代碼示例驗證客戶端密碼中的字符。
5、不要把管理帳戶名或密碼放置在管理腳本或 ASP 頁中。
6、不要根據請求標題在代碼中做出決策,因為標題數據可以被惡意用戶偽造。在使用請求數據前,始終要對其進行編碼或者使用下面的代碼示例驗證其所包含的字符。
7、不要將安全數據存儲在 Cookie 中或者將輸入字段隱藏在網頁中。
始終將安全套接字層 (SSL) 用于基于會話的應用程序,以避免未對會話 Cookie 進行加密就發送它們所帶來的風險。如果會話 Cookie 沒有經過加密,則惡意用戶可以使用一個應用程序中的會話 Cookie 進入到與之在同一進程中的另一個應用程序。
8、當編寫 ISAPI 應用程序、篩選器或者 COM+ 對象時,請注意由于變量和數據的大小而造成的緩沖區溢出。還要注意可能由于解釋造成的規范化問題,例如將絕對路徑名解釋成相對路徑名或 URL。
9、當在單線程單元 (STA) 內運行的 ASP 應用程序切換到多線程單元 (MTA) 內時,模擬令牌將過時。這可能導致應用程序在無模擬的情況下運行,讓其用可能允許訪問其他資源的進程的標識有效地運行。如果您必須切換線程模型,請在進行更改之前,先禁用該應用程序并將其卸載。
代碼示例
本代碼示例包含了一個函數,它可刪除發送至該函數的字符串中的可能有害的字符。在上面的兩個示例中,指定代碼頁以確保正確地編碼。下面的示例使用的是 Microsoft Visual Basic® Scripting Edition(VBScript):
<%@ LANGUAGE=
"VBScript"
%>
<%
Response.CodePage = 1252
Response.Write(
"Hello, "
& RemoveBadCharacters(Request.Form(
"UserName"
)))
Response.Write(
"<BR>This is why you received an error:"
)
Function
RemoveBadCharacters(strTemp)
Dim
regEx
Set
regEx =
New
RegExp
regEx.Pattern =
"[^\s\w]"
regEx.Global =
True
RemoveBadCharacters = regEx.Replace(strTemp,
""
)
End
Function
%>
下面的示例使用的是 Microsoft JScript®:
<%@ LANGUAGE=
"JScript"
%>
<%
Response.CodePage = 1252;
Response.Write(
"Hello, "
+ RemoveBadCharacters(Request.Form(
"UserName"
)));
Response.Write(
"<BR>This is why you received an error:"
);
function RemoveBadCharacters(strTemp) {
strTemp = strTemp.replace(/[^\s\w]/g,
""
);
return strTemp;
}
%>
利用ASP發送和接收XML數據的處理方法
因為要做移動夢網WAP的一些接口,所以要用到這種方式,這個是ASP版本的,利用了MSXML2.XMLHTTP對像,利用這種方法,ASP里調用Servlet或Web Service都是很輕松的!...
ASP實現限制一個ip只能訪問一次的方法
文章主要介紹了asp實現限制一個ip只能訪問一次的方法,感興趣的小伙伴們可以參考一下限制一個ip只能訪問一次,現在將asp代碼分享給大家: <% '////////////////////////////...
ASP程序中常使用的幾種腳本語言
在瀏覽器中通過查看源代碼的方式是無法看到ASP源代碼的,你只能看到由ASP文件輸出的結果,而那些只是純粹的HTML而已。這是因為,在結果被送回瀏覽器前,腳本已經在服務器執行了。實...
Asp.net web.config customErrors設置詳解
文章主要介紹了詳解Asp.net web.config customErrors 如何設置,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...
關于ASP程序中常見的幾種腳本語言介紹
相信很多程序員對于ASP都并不陌生反而很熟悉了,畢竟作為一款簡單又十分容易維護的動態服務器頁面ASP是相當受歡迎的。平時不是很經常接觸編程方面的朋友對于ASP的了解就...
騰訊大股東Naspers成立OTT視頻部門 迎戰Netflix
騰訊大股東Naspers視頻娛樂分部新成立了OTT視頻部門,目的是對抗來自Netflix等全球視頻服務巨頭的激烈競爭。...
騰訊大股東Naspers:最看好外賣、數字支付和分類廣告
南非媒體、科技和投資公司Naspers的首席執行官表示,目前他最看好三大在線領域的投資機會,即外賣、移動支付和分類廣告。Naspers曾通過一筆投資取得巨額回報。這家創立于一個多...
宏碁Aspire VX 15游戲本正式上市:內置GTX 1050 Ti顯卡
3月16日消息,宏碁在 CES 2017 上發布的 Aspire VX 15 游戲筆記本現已上市,雖然搭載了英特爾 Kaby Lake 處理器和 Nvidia Pascal 獨顯,其性價比仍然相當出眾。 VX 15主要有酷...
宏Aspire R3-131T變形本評測
作為宏AspireR11家族的最新成員,R3-131T擁有可360度翻轉“視界”的能力,而不足3000元的價格也使其成為了同類產品中最具性價比的新品之一。宏R3-131T是一款11.6英寸的變形本,它最大的特色就是屏幕可3...
記一次ASP.NET網站的入侵和如何避免被入侵
前些日子我去客戶那調研,發現客戶的監控系統用的是海康威視的硬盤錄像機,然后默認用戶名是amdin密碼是12345,回來后就想玩一玩看看有多少人用的是默認密碼,于是就寫了個...