0
에서 나는 기존 ASP에서 사용되는 구문 분석 및 URL 매개 변수의 유효성을 확인하기 위해 다음과 같은 기능을 발견안전 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 클래식에 대한 쿼리 문자열을 구문 분석하는보다 표준적이고 안전한 방법이 있습니까?
그들은 쿼리 문자열에 위험한 문자를 인코딩하려고합니다. EXECUTE는 두려운 것처럼 보입니다. 저는 고전적인 ASP 프로그래머가 아니지만, 작성된 코드가 쿼리 매개 변수를 통해 반복되고 키/값 쌍에 {a-z, A-Z, 0-9}의 문자 만 포함되어 있는지 확인하는 방법이 있습니다. – TheGreatContini
@TheGreatContini - 다국어 매개 변수를 지원해야하기 때문에 필자는 문자 허용 목록을 사용할 수 없다고 덧붙여 야합니다. 또한 이것이 완료 되었기 때문에 그것이 정확하거나 필요하다는 것을 의미하지는 않습니다. 내가 아는 한, IIS는 이미 일들을 올바르게 인코딩합니다 .... – feetwet