FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Nån som kan se vad som är galet den här ASP koden.
Funktionen Kod:
Function IsAZ09(strCheck) With New RegExp .IgnoreCase = True .Pattern = "^[a-z][0-9][A-Z]$" IsAZ09 = .Test(strCheck) End With End Function Kod:
IF NOT IsAZ09(strUser) THEN userFel = "2" bolFel = True END IF Kod:
strUser = Replace(Trim(Request.Form("user")), "'", "''") |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
Citat:
Prova att ändra till: Kod:
.Pattern = "^[a-z0-9]+$" Kod:
.IgnoreCase = True |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
Citat:
|
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Medlem
|
Citat:
Fråga bara, varför bär man inte testa för SQL injections före SQL frågan??? |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Nykomling
|
Citat:
Jo, för att kunna hantera alla variabler under samma förutsättningar. Säg att du vill skriva ut det felaktiga användarnamnet eller fylla i ett formulär åt användaren, så att användaren kan rätta till sitt fel utan att behöva skriva om allt. Då måste du komma ihåg om du har bytt ut alla ' mot '' för att sen göra det motsatta när du ska skriva ut variablen. Så en bra regel är att hantera alla variabler som "fientliga", oavsett om du hämtar data från en databas, cookies, Request objektet osv. När du bygger en SQL-fråga testar du mot SQL-injection och när du skriver ut en variabel använder du Server.HTMLEncode(). Exempel: Kod:
strUser = Trim(Request.Form("user")) intUserId = Request.Form("userid") ' Bygga en SQL-fråga (sträng) strSql = "SELECT * FROM users WHERE username = '" & Replace(strUser, "'", "''") & "'" ' Bygga en SQL-fråga (tal) strSql = "SELECT * FROM users WHERE userid = " & Int(intUserId) ' Skriva ut en variabel Response.Write(Server.HTMLEncode(strUser)) Response.Write(Server.HTMLEncode(intUserId)) |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Har WN som tidsfördriv
|
Din regexpsträng borde också kunna skrivas som
Kod:
^\w$ |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Nykomling
|
Citat:
Citat:
|
||
![]() |
![]() |
Svara |
|
|