Kom ihåg mig?
Home Menu

Menu


ASP Case Sens

Ämnesverktyg Visningsalternativ
Oläst 2008-06-21, 17:19 #1
WeaZear WeaZear är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2008
Inlägg: 689
WeaZear WeaZear är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2008
Inlägg: 689
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?
WeaZear är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-21, 17:43 #2
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Vad är det du letar efter då? Borde det inte vara tillräckligt safe att bara leta efter specialtecken?
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-21, 17:45 #3
WeaZear WeaZear är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2008
Inlägg: 689
WeaZear WeaZear är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2008
Inlägg: 689
Jo de klart, men tänkte på typ DROP, TRUNCATE och sådana.
WeaZear är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-21, 18:26 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
"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.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-21, 21:14 #5
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
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.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-21, 22:18 #6
scrdj scrdj är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 374
scrdj scrdj är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 374
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.
scrdj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-21, 23:46 #7
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
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.
Vimp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-22, 09:41 #8
WeaZear WeaZear är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2008
Inlägg: 689
WeaZear WeaZear är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2008
Inlägg: 689
Citat:
Originally posted by Vimp@Jun 21 2008, 23:46
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.
Men om jag replacar ; mot typ / och () mot /, borde man inte vara skyddad mot den typen av SQL Injections?

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"
WeaZear är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-23, 10:45 #9
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Citat:
Originally posted by WeaZear@Jun 22 2008, 09:41
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"
Där används ADODB.Command, vilket är rätt sätt att lösa det på. Genom att använda parametrar (helst i samband med stored procedures) så är man automatiskt helt skyddad mot SQL Injections.
Vimp är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:49.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017