Vraag : SQL Injectie & Klassiek ASPIS

Hello hebben de Deskundigen,

I nooit over SQL Injecties voordien gedacht, maar het kwam enkel over mijn attention.

I deed wat onderzoek en SQL de injecties schijnen vrij makkelijk te gebruiken en houwer in db.  zo eenvoudig zoals typend het volgende in een textbox

abc';- DALING; --

If dit is waar, dan hoe dit kan worden verhinderd.  zal beperken van '; samen volstaan, of is het complex mor dan dat?  Kan niet Ik vond de code onder dat vermoedelijk injecties verhindert, maar ik wat vertellen het die is en hoe te om het te gebruiken doen?

Lastly, als de injectiebeperkingen nodig zijn, is zij vereiste slechts wanneer ik SQL WAAR, of ook, TUSSENVOEGSEL IN, UPDATE, rs.AddNew, etc.

Thank you.
doe
" codeBody "
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:
<%

'Na functies verhinder SQL Injecties.

functie validText (pStr)
	schemerige sTemp
	
	sTemp = ""
	als niet isNuLL (pStr) EN (pStr <> "") toen
		sTemp = vervang (pStr, „'“, „''“)
	beëindig als
	validText = sTemp
eind functie

Functie ReturnValue (sPattern, het sSearchString, iCase)

	Schemerige oRegEx, oMatches  
	Reeks oRegEx = Nieuwe RegExp   

	oRegEx.Pattern = sPattern
	oRegEx.IgnoreCase = vals
	oRegEx.Global = waar

	Reeks oMatches = oRegEx.Execute (het sSearchString) 

	Als oMatches.count >= 1 toen
		Selecteer iCase van het Geval
		Geval 0
		   ReturnValue = oMatches (0)
		Geval 1
		   ReturnValue = oMatches (0)
		Geval 2
		   ReturnValue = oMatches (1)
		Uitgezocht eind
   anders
		ReturnValue = 0	
   Eind als

De Functie van het eind

isReallyNumeric functie (pValue)
	schemerige bValidNumeric
	schemerige sTemp
	schemerige cTemp
	schemerige I
	
	bValidNumeric = waar
	sTemp = CStr (pValue)
	
	voor I = 1 aan Len (sTemp)
		cTemp = Medio (sTemp, I, 1)
		
		als Asc (cTemp) < 48 of Asc (cTemp) > 57 toen
			bValidNumeric = vals
			uitgang voor
		beëindig als
	daarna

	isReallyNumeric = bValidNumeric
eind functie

functie IfNotNumeric (pValue, pDefaultValue)
	schemerige sTemp 
  
	sTemp = pValue 
	als (pValue = "") OF (niet isReallyNumeric (pValue)) dan  
		sTemp = pDefaultValue
	anders
		sTemp = ReturnValue („\ B [0-9] + \ B“, sTemp, 0)
	beëindig als
  
  IfNotNumeric = sTemp
eind functie
%>

Antwoord : SQL Injectie & Klassiek ASPIS

Als u geen dingen wilt compliceren omhoog, eenvoudig deze functie toevoegen en het roepen met uw Verzoek. Het zal SQL injectiebevelen filtreren en zal SQL vriendschappelijke waarde verlaten.
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:
De Injectie van de functie (x)
    x = vervangen (x, „uitgezocht“, "")
    x = vervangen (x, „daling“, "")
    x = vervangen (x, „--“, "")
    x = vervangen (x, „tussenvoegsel“, "")
    x = vervangen (x, „schrapt“, "")
    x = vervangen (x, „xp_“, "")
    x = vervangen (x, „*“, "")
    x = vervangen (x, „#“, "")
    x = vervangen (x, „%“, "")
    x = vervangen (x, „&“, "")
    x = vervangen (x, „'“, "")
    x = vervangen (x, „(“, "")
    x = vervangen (x, „)“, "")
    x = vervangen (x, „/“, "")
    x = vervangen (x, „\“, "")
    x = vervangen (x, „: “, "")
    x = vervangen (x, „; “, "")
    x = vervangen (x, ""<>, "")
    x = vervangen (x, „=“, "")
    x = vervangen (x, „[“, "")
    x = vervangen (x, „]“, "")
    x = vervangen (x, „? “, "")
    x = vervangen (x, „`“, "")
    x = vervangen (x, „|“, "")
    Injectie = x
De Functie van het eind
Andere oplossingen  
 
programming4us programming4us