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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

在ASP中過濾用戶輸入 提高安全性

2019-11-18 20:01:27
字體:
供稿:網(wǎng)友

安全對于所有應(yīng)用程序來說都是十分重要的。一個簡單應(yīng)用程序里的某個失誤都會造成對數(shù)據(jù)庫或者其他企業(yè)資源未經(jīng)授權(quán)的訪問,因此安全尤其重要。一種常用的攻擊方法是將命令嵌入到用戶的回應(yīng)里,而從用戶輸入里過濾掉這些非法的字符就能夠防止這種攻擊。

 
允許用戶輸入非法的字符會增加用戶導(dǎo)致問題的機會。例如,很多應(yīng)用程序都能夠接受用戶在SQL命令里增加的WHERE子句。惡意用戶會通過向其輸入的信息里增加額外命令的方法,來執(zhí)行數(shù)據(jù)庫服務(wù)器上的代碼。例如,他們不是輸入“Smith”,將其作為檢索字符串,而是輸入“Smith'; EXEC master..xp_cmdshell 'dir *.exe”。

下面這段代碼是設(shè)計用來處理從服務(wù)器返回的多個Recordset的。用戶的輸入會包含一個額外的、未預(yù)料的的執(zhí)行命令。當(dāng)NextRecordset方法被調(diào)用的時候,潛藏的惡意代碼就會被執(zhí)行。

這一攻擊可以通過過濾掉用戶輸入信息中的非法字符(在注釋段里)來避免。這樣做了之后,用戶的輸入仍然被允許處理,但是清除掉了所有的非法字符。

Dim rst As Recordset
Dim rst2 As Recordset
Dim strUserInput As String

strUserInput = "Smith';EXEC master..xp_cmdshell 'dir *.exe"

'Filter input for invalid characters
strUserInput = Replace(strUserInput, "<", vbNullString)
strUserInput = Replace(strUserInput, ">", vbNullString)
strUserInput = Replace(strUserInput, """", vbNullString)
strUserInput = Replace(strUserInput, "'", vbNullString)
strUserInput = Replace(strUserInput, "%", vbNullString)
strUserInput = Replace(strUserInput, ";", vbNullString)
strUserInput = Replace(strUserInput, "(", vbNullString)
strUserInput = Replace(strUserInput, ")", vbNullString)
strUserInput = Replace(strUserInput, "&", vbNullString)
strUserInput = Replace(strUserInput, "+", vbNullString)
strUserInput = Replace(strUserInput, "-", vbNullString)

Set rst = New Recordset
rst.ActiveConnection = "PROVIDER=SQLOLEDB;DATA SOURCE=SQLServer;" & _
                       "Initial Catalog=pubs;Integrated Security=SSPI"
rst.Open "Select * from authors where au_lname = '" & strUserInput & _
         "'", , adOpenStatic
'Do something with recordset 1

Set rst2 = rst.NextRecordset()
'Do something with recordset 2

在用戶的輸入中嵌入命令也是攻擊asp Web應(yīng)用程序的一種常見手法,也叫做跨網(wǎng)站腳本攻擊。過濾輸入的內(nèi)容并使用Server.HTMLEncode和Server.URLEncode這兩個方法會有助于防止你ASP應(yīng)用程序里這類問題的發(fā)生。


 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 林甸县| 乡城县| 新密市| 黑龙江省| 疏勒县| 商都县| 巴林右旗| 疏附县| 辽阳县| 溧阳市| 普宁市| 华宁县| 德昌县| 马尔康县| 忻城县| 威远县| 玉田县| 来安县| 武夷山市| 汤阴县| 开化县| 祁连县| 闽清县| 理塘县| 青铜峡市| 廊坊市| 边坝县| 广平县| 平罗县| 肃宁县| 内丘县| 布尔津县| 宣城市| 都安| 湘阴县| 花垣县| 大足县| 东乡族自治县| 黄浦区| 木兰县| 泰安市|