FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Mycket flitig postare
|
När jag använder replace koder i ASP för att sortera bort känsliga tecken för att skydda mina inputs mot SQL Injections har jag märkt att replace koderna är Case Sens... Jag kom på ett sätt att få bort det, genom att göra om texten som skall rensas till Lower Case, dock ser det stört ut på profilerna etc, när man itne kan skriva med versaler.
Någon som vet något bra sätt att göra replace inte case sens? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Supermoderator
|
Vad är det du letar efter då? Borde det inte vara tillräckligt safe att bara leta efter specialtecken?
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Mycket flitig postare
|
Jo de klart, men tänkte på typ DROP, TRUNCATE och sådana.
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Administratör
|
"update profiler set text='TRUNCATE users' where id=5" gör inget annat än uppdaterar profiltexten till "TRUNCATE users". Så länge du rensar de relevanta specialtecknena så är du säker från injicerad SQL.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
Du bör nog hellre skydda dig emot detta på Serversidan istället. Alltså i MySQL, har du tillgång till MySQL användar hanterare så gör enbart så att ditt konto du skall använda live enbart kan göra det du behöver: SELECT, UPDATE, INSERT & kanske DELETE.
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Flitig postare
|
Det är väl bra enkelfnuttar och backslash du behöver skydda dig emot?
Gör en replace där dessa blir samma tecken x 2 bara. |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Medlem
|
Det där är ett helt värdelöst skydd. Det enda sättet att skydda sig på är genom att köra med ADODB.Command och parametrar.
Kika här: http://www.aspsidan.se/default.asp?p...d=5&pId=562673 Du bör även använda stored procedures och inte bara vanliga sql-injections på sidan. Då kan du genom dem ange direkt vilken kod som ska köras och samtidigt få all sql-kod på samma plats, vilket underlättar om du hittar något fel. |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Mycket flitig postare
|
Citat:
Dock såg detta ut att kunna lösa problemet: Kod:
Const adVarChar = 200 Const adParamInput = 1 cmd = Server.CreateObject("ADODB.Command") Set cmd.ActiveConnection = conn cmd.CommandText = "SELECT * FROM Users WHERE Username = ?" cmd.Parameters.Append cmd.CreateParameter("Username", adVarChar, adParamInput) cmd.Parameters("Username") = "Tant102" |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Citat:
|
||
![]() |
![]() |
Svara |
|
|