Nu har jag läst en del om ämnet. I forumet verkar det inte som om någon vet vad som gäller med ASP mot MySQL - det här har jag förstått: Det enda, enligt min åsikt och erfarenhet, du behöver göra är att byta först ut alla \ mot \\ och sedan byter du ut ' mot \', förutsatt att du använder ' runt dina strängar i sql frågan. Använder du " runtom måste du ersätta dem med \". varför är det bättre att sätta en backslash framför snuffarna än att ta bort dem helt? <b>Och om det är numeriska fält du ska arbeta med kontrollerar du att det är ett numeriskt värde.</b> Vad gör backslashen egetligen? gör den att tecknet efter inte räknas eller? vad händer då om användaren skriver in en backslash och därefter en bokstav? Backslash "escapar" (bättre svenskt ord?) specialtecken, alltså backslash är ett specialtecken som du kan använda för att göra till exempel andra specialtecken tappa sin betydelse. Jag skulle säga att backslash ger efterföljande tecken en annan inebörd. SQL injection
Måste kolla att alla numeriska värden är numeriska
Stänga av felmeddelanden som gör känslig info uppenbar
Se till att rätt roll används när man kör en databasanslutning
ta bort alla ' (snuffar)
men sedan säger vissa att när man kör mot en MySQL, då finns det en rad fler tecken än bara ' som man måste ta bort typ /n och sådana saker... och ingen förnekar det.
Är det vekrligen så korkat att det finns ett antal växlar/tecken som bryter strängen i MySQL?? eller räcker det att eliminera alla enkelsnuffar ' ??
Vidare finns en funktion som ständigt hänvisas till i php någonting_real_någonting() som gör strängen säker. Finns en motsvarighet i ASP? Om inte, är det alltså osäkert att köra ASP mot MySQL om man inte skriver en hel lång funktion som tar bort alla 8 strängbrytande växlar eller vad det rör sig om?
Förvånad, förundrad, frustrerad...Sv: SQL injection
Ta inte bort enkelfnuttar utan gör dem säkra... I PHP heter funktionen mysql_escape_string och gör samma saker.
Och om det är numeriska fält du ska arbeta med kontrollerar du att det är ett numeriskt värde.
Enligt mina erfarenheter behövs inget mer för att göra det fullt säkert mot SQL-injections, med förbehåll för att jag kan ha glömt något.
Och självklart gäller det ju alltid att inte avslöja hur databasen ser ut, eller andra känsliga data. Och regeln att användaren inte ska kunna göra mer än nödvändigt fungerar i alla fall.Sv:SQL injection
Sv:SQL injection
Man kan även hantera numeriska värden som strängar, alltså omsluta dem med 'fnuttar'. MySQL konverterar automatiskt så gott det går.Sv: SQL injection
Sv:SQL injection
Om användaren skulle skriva in till exempel \n i texten skapas en ny rad, därför ska det första du byter ut, som jag skrev, vara just backslash. Ersätt \ med \\ och efter det byter du ut ' och/eller " mot \' respektive \"
Även om du byter ut ' mot \' kommer det att skrivas in ' i databasen.Sv: SQL injection
Vill du veta mer så kan wikipedia ge dig lite kött på bena:
http://en.wikipedia.org/wiki/Escape_characterCitationstecken