Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

SQL-Injections - Att förhinda dom

Postad 2006-09-06 av Mikael Johansson i sektionen ASP.NET, C#, Okategoriserat med 1 Kommentarer | Läst av: 5288, Betyg: 76%

Förord

SQL-Injections är något som man inte tänker på så ofta eftersom det inte märks på servern förens någonting händer. SQL-Injections går ut på att man börjar med en ' följt av = börjar med ett utbrytstecken för att ta sig ur en textsträng i SQLen som därefter "injicerar" sin egna SQL-sats i databasservern vilket ger en tillgång till det mesta som finns i databasen.
Innehåll
  » Stored procedures
  » .Replace()
Exempel:
Vi ska ha en inloggning på adminsidan och ska kolla om personen skrev in rätt lösenord i formuläret. Då skulle det kunna se ut så här:

SELECT * FROM tbl WHERE tblData = '" & tboxAnv.Text & "' AND losen = '" & tboxLosen.Text & "'
Kör man med en SQL-sats lik denna skulle man kunna logga in om tboxAnv och tboxLosen finns med i databasen.
Men tänk om man skulle kunna modifiera SQL-satsen direkt på sidan?
Då skulle det räcka med att man skrev 'OR losen <>' i lösenordsfältet för att SQL-satsen ska bli så här:

SELECT * FROM tblTabellen WHERE anv = '""' AND losen = 'OR losen <>'
Det i sin tur gör att du kommer kunna logga in.
Det här är ett relativt stort problem på många sidor, men det finns sätt att förhindra detta vilket jag går igenom i den här artikeln.


Stored procedures

Ett lätt sätt att undvika SQL-Injections är att att använad så kallade Stored procedures som är "lagrade procedurer" vilket du hör på namnet.
Man skapar då sin SQL-sats direkt i databasen och kör sedan med parametrar för att lägga in eller uppdatera data.


.Replace()

I .NET finns det en replace-funktion som du kan använda för att undvika SQL-Injections.
Genom en liten enkel rad skyddar du dig mot SQL-Injections:

Variabel.Replace("'","'")
Genom att använda raden ovan kommer nu "Variabel" att vara skyddad mot SQL-Injections.

Personligen föredrar jag det sista alternativet då jag är ganska lat och den är smidig att bara lägga till i en färdig rutin.
Upp

1 Kommentarer


  1. Pelle Johansson
    6 sep 2006

    En lagrad procedur medför inte per automatik att sql injection förhindras. Använder man däremot command-objektet och adderar fält för fält så går det däremot inte att skicka in skadlig information.

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
1 042
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies