Ciao,
volevo sapere se queste due funzioni possono bastare a verificare i dati in input nelle varie pagine asp
codice:
 
Const Numero = 1
Const Testo = 2
Const Data = 3


Function checkVar(variabile, tipoDato, maxGrandezzaCampo)  
	' funzione per controllo variabili in base al tipo 
	' variabile - valore da controllare
	' tipoDato - tipo del valore da controllare e può essere Numero - Testo - Data
	' maxGrandezzaCampo - se numero il tipo di dato di variabile, se testo la lunghezza massima della stringa, se data ""
	'					  se 0-200 un rage che deve contenere valore
	ON ERROR RESUME NEXT
	err.Clear
	'varType https://stackoverflow.com/questions/3281355/get-the-type-of-a-variable-in-vbscript
	select case tipoDato
	case Numero
		'controllo se la variabile e' un numero
		if isNumeric(variabile) then
			if maxGrandezzaCampo = vbInteger then variabile = CInt(variabile)
			if maxGrandezzaCampo = vbLong then variabile = CLng(variabile)
			if maxGrandezzaCampo = vbSingle then variabile = CSng(variabile)
			if maxGrandezzaCampo = vbDouble then variabile = CDbl(variabile)
			if maxGrandezzaCampo = vbCurrency then variabile = CCur(variabile)
			if maxGrandezzaCampo = vbByte then variabile = CByte(variabile)
			


			if Err.Number > 0 then
				checkVar = False
			else
				


				if VarType(variabile) = maxGrandezzaCampo then
					checkVar = True
				else
					if InStr(maxGrandezzaCampo,"-") > 0 then
						valTmp = split(maxGrandezzaCampo, "-")
						valoreMinimo = CLng(valTmp(0))
						valoreMassimo = CLng(valTmp(1))


						if (CLng(variabile) < valoreMinimo) OR (CLng(variabile) > valoreMassimo) then
							checkVar = false
						else
							checkVar = true
						end if
					else
						esitoOp "Valore maxGrandezzaCampo non valido",""
					end if
				end if
			end if
		else
			checkVar = false
		end if
	case Testo
		'controllo se la variabile e' un testo
		if varType(variabile) = vbString then
			if len(variabile) <= maxGrandezzaCampo then
				checkVar = True
			else
				checkVar = False
			end if
		else
			checkVar = False
		end if
	case Data
		'controllo se la variabile e' una data
		if isDate(variabile) then
			checkVar = true
		else
			checkVar = false
		end if
	end select
	err.Clear
End Function
codice:
Function no_SQLinject(campo, valoriDaEscludere)
	'Blocca tentativi di SQL injection
	'campo valore da testare
	'valoriDaEscludere caratteri o stringa da escludere dal controllo separati da | es "'|=|select"
	Stringa_originale = campo
	
	if InStr(valoriDaEscludere,"=") = 0 then
		myString = ReplaceAllByExpression(campo, "=", "")
	end if
	if InStr(valoriDaEscludere,"'") = 0 then
		myString = ReplaceAllByExpression(campo, "'", "")
	end if
	'myString = ReplaceAllByExpression(campo, """", "")
	myString = ReplaceAllByExpression(campo, " OR ", "")
	myString = ReplaceAllByExpression(campo, " AND ", "")
	myString = ReplaceAllByExpression(campo, "--", "")
	myString = ReplaceAllByExpression(campo, ";", "")
	myString = ReplaceAllByExpression(campo, "SELECT", "")
	myString = ReplaceAllByExpression(campo, "INSERT", "")
	myString = ReplaceAllByExpression(campo, "UPDATE", "")
	myString = ReplaceAllByExpression(campo, "DELETE", "")
	myString = ReplaceAllByExpression(campo, "DROP", "")
	myString = ReplaceAllByExpression(campo, "UNION ALL", "")
	myString = ReplaceAllByExpression(campo, "GROUP BY", "")
	myString = ReplaceAllByExpression(campo, "HAVING", "")
	myString = ReplaceAllByExpression(campo, "ORDER BY", "")
	myString = ReplaceAllByExpression(campo, "XP_", "")
	myString = ReplaceAllByExpression(campo, "-SHUTDOWN", "")
	myString = ReplaceAllByExpression(campo, "\(", "")
	myString = ReplaceAllByExpression(campo, "\)", "")
	if InStr(valoriDaEscludere,">") = 0 then
		myString = ReplaceAllByExpression(campo, ">", "")
	end if
	if InStr(valoriDaEscludere,"<") = 0 then
		myString = ReplaceAllByExpression(campo, "<", "")
	end if
	
	if Stringa_originale = myString then
		no_SQLinject = myString
	else
		no_SQLinject = false
	end if
end Function
secondo voi serve ancora usare le query parametriche, si possono ancora migliorare?
saluti e grazie delle info