0
我發現下面的函數解析和驗證URL參數在傳統ASP中使用:安全的URL參數驗證的ASP
FOR EACH field IN Request.QueryString
var_name = field
var_value = Request.QueryString(field)
var_value = Replace(var_value, "'", "'")
var_value = Replace(var_value,"""",""")
var_value = Replace(var_value, "&", "&")
var_value = Replace(var_value, "%", "%")
str = "Dim " & var_name
EXECUTE(str)
str = var_name & " = var_value"
EXECUTE(str)
NEXT
這是沒有意義的,我和那兩個EXECUTE
語句似乎是乞求注射攻擊(雖然我還沒有花時間來構建一個)。
是否有更經典和安全的解析ASP Classic查詢字符串的方法?
他們試圖在查詢字符串中編碼危險字符。 EXECUTE確實看起來很可怕。我不是一個傳統的ASP程序員,但我期望看到編寫的代碼循環遍歷查詢參數,並驗證鍵/值對僅包含{a-z,A-Z,0-9}中的字符。 – TheGreatContini
@TheGreatContini - 我應該補充一點,我不能(我不認爲)使用字符白名單,因爲我必須支持多語言參數。另外,僅僅因爲這樣做並不意味着這是正確的或必要的。據我所知,IIS已經正確地編碼了東西.... – feetwet