Forum > ASP.NET 1.x och 2.x > Språk - VB.NET
Tjenare, har börjat med asp.net Vb och jag undrar hur man skyddar sig mot sql injektioner?
.NET har i deras connection handler parameters du kan använda dig av och typar dom:
http://msdn.microsoft.com/en-us/lib...y/yy6y35y8.aspx
Du kan även använda dig av string.Format om du vill göra en sql sträng:
String.Format("SELECT * FROM tblSomething where Value= '{0}'","värde")Okej, hur använder jag string.format då?
Finns det inget liknande som te.x mysql_real_escape_string i php?
parameters är det "säkraste" av de två förslag jag har skrivit. parameters säger du "detta är en sträng" och då kommer den kollar SQL-injection osv till dig per automatik.
Förstår inte ett dugg.
Jag frågade hur man använder string.format, men fick ett svar som handlade om parameters.
Här kan du hitta mer information om string.format.
Du kan också läsa mer om strängar i vb.net här, här inkluderas också string.format.
Men om du frågar mig så är det bättre att använda dig av parameters, precis som voigtan föreslog tidigare. Här kan du läsa mer om hur du använder dig av parameterar.
Okej, men tycker det verkade krångligt.
Okej, men tycker det verkade krångligt.
Din grund fråga var hur du säkrar mot SQL-Injection, string.format är ett alternativ men du behöver fortfarande säkra dina in parameter vilket du slipper med parameters.
Det absolut bästa anser jag är att ha ett flerskiktslager där du separerar presentationslagret, kodlagret och databaslagret ifrån varandra och använder stored procedures för att utföra databasexekveringen så slipper även syntaxen analyseras varje gång också.
Bygg egna klasser där du typbestämmer datatypen på dina parametrar tillsammans med SP så borde du vara homefree mot Injections!
Bra artikel om 3-skikts lager hittar du här
http://asp.net/learn/data-access/