Pergunta : Injeção do SQL & ASP clássico

Olá! os peritos,

I nunca pensaram sobre injeções do SQL antes, mas apenas veio a meu attention.

I fêz alguma pesquisa e as injeções do SQL parecem razoavelmente fáceis de usar-se e cortar em um DB.  tão simples quanto datilografando o seguinte em uma tabela da GOTA do textbox

abc';; --o

If isto é verdadeiro, a seguir como pode este ser impedido.  '; restringir será junto suficiente, ou é complexo da ANSR do que aquele?  Eu encontrei o código abaixo do esse suposta para impedir injeções, mas eu não posso dizer o que são ele que faz e como o usar? o

Lastly, se as limitações da injeção são necessários, é elas somente necessário quando eu estou fazendo o SQL em ONDE, ou também, a INSERÇÃO, a ATUALIZAÇÃO, o rs.AddNew, etc.

Thank you.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
class= ><% " notpretty " do id= " codeSnippet746605 " do
 do pStr) então
		o sTemp = substitui (pStr, “'”, “'' ")
	terminar se
	validText = sTemp
função do fim

Função ReturnValue (sPattern, sSearchString, iCase)

	oRegEx não ofuscante, oMatches  
	Ajustar o oRegEx = RegExp novo   

	oRegEx.Pattern = sPattern
	oRegEx.IgnoreCase = falso
	oRegEx.Global = retificam

	Ajustar oMatches = oRegEx.Execute (sSearchString) 

	Se >= 1 de oMatches.count então
		Selecionar o iCase do caso
		Caso 0
		   ReturnValue = oMatches (0)
		Caso 1
		   ReturnValue = oMatches (0)
		Caso 2
		   ReturnValue = oMatches (1)
		Extremidade seleta
   mais
		ReturnValue = 0	
   Terminar se

Terminar a função

função isReallyNumeric (pValue)
	bValidNumeric não ofuscante
	sTemp não ofuscante
	cTemp não ofuscante
	escurecer i
	
	bValidNumeric = retificar
	sTemp = CStr (pValue)
	
	para i = 1 a Len (sTemp)
		cTemp = meados de (sTemp, i, 1)
		
		se Asc (cTemp) < 48 ou Asc (cTemp) > 57 então
			bValidNumeric = falso
			retirar para
		terminar se
	em seguida

	isReallyNumeric = bValidNumeric
função do fim

função IfNotNumeric (pValue, pDefaultValue)
	sTemp não ofuscante 
  
	sTemp = pValue 
	se (pValue = "") OU (nao isReallyNumeric (pValue)) então  
		sTemp = pDefaultValue
	mais
		sTemp = ReturnValue (+ “\ b [0-9] \ b”, sTemp, 0)
	terminar se
  
  IfNotNumeric = sTemp
função do fim
%>
class= do

Resposta : Injeção do SQL & ASP clássico

Se você não quer complicar acima, simplesmente coisas para adicionar esta função e para a chamar com seu pedido. Filtrará comandos da injeção do SQL e deixará a SQL o valor amigável.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
Injeção da função (x)
    x = substituem (x, “seleciona”, "")
    x = substituem (x, “gota”, o "")
    x = substituem (x, “--”, "")
    x = substituem (x, “inserção”, o "")
    x = substituem (x, “supressão”, o "")
    x = substituem (x, “xp_”, o "")
    x = substituem (x, “*”, o "")
    x = substituem (x, “#”, o "")
    x = substituem (x, “%”, o "")
    x = substituem (x, “&”, o "")
    x = substituem (x, “'”, o "")
    x = substituem (x, “(”, o "")
    x = substituem (x, ")”, o "")
    x = substituem (x, “/”, o "")
    x = substituem (x, “\”, o "")
    x = substituem (x, “: ”, "")
    x = substituem (x, “; ”, "")
    x = substituem (x, ""<>, o "")
    x = substituem (x, “=”, o "")
    x = substituem (x, “[”, o "")
    x = substituem (x, “]”, o "")
    x = substituem (x, “? ”, "")
    x = substituem (x, “`”, o "")
    x = substituem (x, “|”, "")
    Injeção = x
Função do fim
Outras soluções  
 
programming4us programming4us