*   >> Læs Uddannelse artikler >> tech >> web development

Sådan beskytter du din php webside fra SQL-injektion

SQL-injektion

SQL injektion er den mest almindelige form for hjemmeside hacking, det sker, når en bruger påvirker din database uden tilladelse ved hjælp af SQL kode. For eksempel:.

En vunerable hjemmeside har en login-side, password feild ikke beskyttet mod SQL-injektion, når en hacker ser dette, de skriver 'OR' '=' i adgangskoden feild

< p> login behandles på denne måde:

SELECT * FROM `users` WHERE brugernavn = '$ brugernavn" og password =' ​​$ password '

Nu vil vi indsætter vores værdier:

SELECT * FROM `users` WHERE brugernavn =" admin "og password = '' OR '' = ''

Bemærk, at checken password er blevet omgået.

Nu koden siger at vælge en bruger, hvis adgangskoden er lig ingenting eller intet lig ingenting, som altid er sandt, så dette vil vælge det første bruger i databasen, hvilket mest almindeligt er administratorkonto.

Så hvordan du forhindre disse angreb?

Der er mange metoder til at forhindre en SQL-injektion, nogle er lettere og bedre, men jeg tror, ​​at dens praktisk at vide mere end en. Dybest set det vigtigste idé er at stoppe, eller indkode apostrophy

Metode 1 -. Addslashes ()

I php kodning der er en funktion kaldet addslashes.

Denne funktion giver omvendte skråstreger før eventuelle tegn, som kan forårsage skade på din database, eller narre det ind at give ud wrog oplysninger. Et eksempel kan ses nedenfor:

Hvem er den mand? ville blive indsat i databasen som Hvem er den mand? (Dette er ikke database sikker)

Når du bruger addslashes: Salg

addslashes (? Hvem er den mand) ville blive indsat i databasen Hvem \\ 's den mand? (dette er database sikker)

At have en omvendt skråstreg før 'betyder, at databasen ikke genkender det som gyldig SQL-kode, og blot ignorerer det

Metode 2 -.

kryptering

< . p> Kryptering betyder, at de oplysninger, der sendes gennem krypteres før det sendes til databasen til validering, betyder det, at oplysningerne i databasen også skal encryped dog

Nogle former for kryptering omfatter:


  • md5 ()

  • SHA1 ()

  • AES_ENCRYPT ()

    De to første er ok for basale hjemmesider, hvor de oplysninger, der bliver krypteret er ikke af stor værdi, men disse er revnet på forskellige måder, og værktøjer, som folk kan bruge til at knække dem er wildley availiable, de stadig giver beskyttelse mod SQL injektion tho, eksempel:

    md5 ('OR' '=') = c499fdb754

    Page   <<       [1] [2] [3] >>
  • Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.