SQL Injection Tutorial

SQL injektion hacks udføres på servere, der ikke har den nødvendige sikker programmering.Disse er normalt udført på servere, hvor web-side kode bruger inline SQL, hvilket betyder, at forespørgslen er i web-side kode i stedet placeret i en lagret procedure.At vide, hvordan en SQL-injektion hack værker hjælper webstedsejere at beskytte kundedata og sikre websider.

Den Form Variable

  • Det første skridt i at forstå, hvordan en SQL-injektion angreb er skabt, er ved at replikere problemet.SQL injektion angreb opnås gennem formvariabler i en HTML-side.Oprettelse formen gør det muligt for webmaster at simulere og teste sikkerheden i webserveren.Nedenfor er et eksempel på en formular objekt bruges til at skabe en SQL-injektion angreb.

    & lt; input type = \ "tekst \" name = \ "mitNavn \" & gt;

    Selv om dette er en simpel form tekstboks, det er alt, hvad der er nødvendigt for at udføre en SQL-injektion.

The Hacker Code

  • Når SQL-sætninger er lavet, programmet bygger SQL-kode, d

    er sendes til databasen.Når en streng er sendt til databasen, koden ser nogenlunde sådan nedenstående tekst:

    vælge * fra myTable hvor navn = 'myVariableFromtheForm «

    Den flueben betyder enden af ​​SQL-kode, og det er her hackere målrette.Når en tekstboks som den skabt i punkt 1 anvendes til at bygge en streng, kan en hacker indtaste noget som følgende i tekstfeltet:

    'eller 1 = 1;-

    Det kunne ligne volapyk, men i virkeligheden er det sprøjter kode i databasen, der køres af serveren.Når \ "myVariableFromtheForm \" erstattes af ovenstående kode, opgørelsen drives af serveren faktisk ligner følgende:

    vælge * fra myTable hvor name = '' eller 1 = 1 - "

    Den \" -\ "er den kommentarer kode til SQL-server, så den sidste afsluttende kryds ignoreres.Strengen er tom, og hackeren tilfører koden \ "1 = 1 \" i opgørelsen.Hvad det gør, er at returnere hver p fra bordet for at hackeren.Dette er, hvordan en skrupelløs person, stjæler private oplysninger fra databaseservere.

Montering af Problem

  • Den bedste måde at løse problemet på kode, der er modtagelige for en SQL-injektion hack er at bruge \ "Erstat \" funktionen i alle tilfælde, hvor tekst er indtastet fra brugerne.For eksempel, i ASP-kode, den følgende linje kode erstatter enkelt flueben med to.Når en SQL Server kører kode med to aksemærkerne, læser dem som en bogstavelig og strengen ikke er afsluttet.

    string.Replace (\ "" \ ", \" '' \ ")
    GO

    Ovenstående kode erstatter alle forekomster af et enkelt flueben med to, fjerner sårbarheden af ​​en SQL-injektion angreb.

288
0
0
Database Software