Avatar billede jensen2005 Nybegynder
28. oktober 2008 - 13:20 Der er 9 kommentarer og
2 løsninger

Hvor sikker er SqlDataSource mod SQL injections

Hej Eksperter

Hvis man bruger de indlagte edit funktioner i et Gridview som er "sat sammen" med en SqlDataSource. Hvor sikker er man så mod SQL injections?

Venlig hilsen

Jensen2005
Avatar billede keysersoze Guru
28. oktober 2008 - 13:29 #1
SqlDataSource er ret sikker idet den benytter parametre og netop parametre beskytter imod utilsigtet input. Så længe du ikke benytter sa accounten og har krypteret din connection-string hvis den ligger i config så er kontrollerne generelt ret sikre.
Avatar billede kalp Novice
28. oktober 2008 - 13:51 #2
Det er også nemt, at få bekræftet hvis du kan gemme tegnet ' eller ":)
Det har Microsoft selvfølgelig taget højde for.
Avatar billede keysersoze Guru
28. oktober 2008 - 14:18 #3
de _kunne_ jo have været (u)smarte at lave en simpel replace så fx dette stadig var muligt;

5;delete * from noget;--

... men sådan er det heldigvis ikke løst :)
Avatar billede jensen2005 Nybegynder
28. oktober 2008 - 17:09 #4
Dejligt at hører. Det bekræfter også hvad jeg havde forstået.

keysersoze: hvad er sa accounten?

Kalp: hvad mener du at man får bekræftet ved at indtaste "'?
Avatar billede kalp Novice
28. oktober 2008 - 17:21 #5
Du har jo oprettet en connection til din database og deri har du anvendt en bruger og et password.
Så hvad accounten er ved du nok bedst selv;)

angående ' og "
hvis du indtaster det via. din  edit funktion i dine felter, så ville det give en fejl normalt (hvis man ikke har taget højde for SQL injection) men hvis tegnene bliver gemt i din databse, så er der ingen problemer;) og SQL injection problematikken er håndteret for dig.
Avatar billede jensen2005 Nybegynder
28. oktober 2008 - 17:33 #6
Tusind takker..

Kan i ikke begge kaste et svar ind så i kan få nogle points.
Avatar billede keysersoze Guru
28. oktober 2008 - 17:54 #7
Der bør generelt ikke være nogle problemer med at indtaste " - det er kun ' der afslutter et tekstinput og dermed i den retning kan åbne for injection.

sa account er den standard account der er på sql serveren (hvis du bruger sådan en) - i access er der ikke problemer i den retning.
Avatar billede keysersoze Guru
28. oktober 2008 - 17:54 #8
svar :)
Avatar billede kalp Novice
28. oktober 2008 - 19:02 #9
=)
Avatar billede mikalj Nybegynder
30. oktober 2008 - 15:07 #10
Så længe du holder dig til at bruger datasourcens parametre objekter og ikke gør noget fjollet som f.eks.
SqlDatasource1.SelectCommand = "SELECT * FROM Table WHERE id = " + Textbox1.Text;
Så er de 100% sikre
Avatar billede jensen2005 Nybegynder
30. oktober 2008 - 15:11 #11
Dejligt at hører - takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester