Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> PHP /MySQL Programmering >> Content
MySQL Injection Tutorial
MySQL Injection is daad van het plaatsen van MySQL statement in een database zonder medeweten van de eigenaar van de database. Het wordt over het algemeen gedaan door het exploiteren van de gebruiker invoervelden die niet goed zijn beschermd . In plaats van het verstrekken van real input die eigenaar van de databank heeft gevraagd , gebruiker een MySQL verklaring dat het gedrag van de query verandert aan de injecterende gebruiker mogelijkheid om de database te manipuleren geven injecteert . MySQL injecties

De eenvoudigste manier om te begrijpen en te leren wat MySQL injectie echt doesis om een ​​kijkje op een voorbeeld te nemen . Een van de populaire manieren van het gebruik MySQLinjections is om login controles te omzeilen op websites. Hier is een voorbeeld van awebsite dat is met behulp van het volgende formulier om de gebruiker te verifiëren :

Login
: < ingang type = " text " name = "username " > Lozinka : < /form >

na het indrukken indienen data ingevoerd wordt vervolgens verstuurd naar de pagina userlogin.php die ontvangt en loopt door een query op de database om niveau van gebruikerstoegang controleren is en als hij de juiste gebruikersnaam en wachtwoord heeft ingevoerd.

< ? $ username = $ _POST [ ' gebruikersnaam ' ] ; $ wachtwoord = $ _POST [ ' wachtwoord' ] ; $ query = "SELECT gebruikersnaam, wachtwoord FROM gebruikers WHERE gebruikersnaam = ' $ username' en het wachtwoord = ' $ wachtwoord' " ; ? >

Dit soort login formulier is wijd open voor uitbuiting door MySQL injectie aanvallen . Om de toegang tot de website van elke gebruiker kan volgende code invoegen krijgen : 'OR 1 = 1 - voor de gebruikersnaam en ' OR 1 = 1 voor wachtwoord

Query
ziet er nu als volgt uit: $ query = "SELECT gebruikersnaam . , password FROM gebruikers WHERE gebruikersnaam = '' OR1 = 1 - ' en wachtwoord = '' OR 1 = 1 " ;

Deze vraag zal gebruikersnaam en wachtwoord van gebruikers waar gebruikersnamen of wachtwoord niet bestaan ​​(selecteer '' deel ) of als men gelijk aan een . Als een is een in alle gevallen de veiligheid van de gegevensbank wordt gecompromitteerd . Twee streepjes vóór apostrof werden toegevoegd om MySQL te negeren apostrof die nu overbodig is . Dit is slechts een type van aanval met MySQL injectie . Een andere variatie op deze aanval is om getaccess om meer informatie dan gebruiker mag .

Nu kijken naar een voorbeeld waar de eigenaar van de database wordt gebruikt volgende queryto krijgen gegevens voor weergave op user account informatie pagina .

$ query = "SELECT * FROM gebruikers WHERE gebruikersnaam = ' $ naam' " ;

Als dit soort query wordt niet beschermd kwaadwillende gebruiker in staat is om input'OR 1 = 1 - te omzeilen gebruikersnaam controleren . $ query = "SELECT * FROM gebruikers WHERE gebruikersnaam = '' OR 1 = 1 - ' " ; . Deze vraag zal nu niet alleen de gegevens van de gebruiker te selecteren , maar de gegevens van alle gebruikers in de tabel " gebruikers "
< br >
bescherming tegen MySQL injecties

Er zijn vele manieren om te beschermen tegen MySQL injecties . In feite MySQL injecties zijn bedreigingen alleen als de ontwikkelaar de dreiging heeft genegeerd en gefaald in het beschermen van zijn code . De eenvoudigste manier om te beschermen tegen injecties in PHP en MySQL combinatie is om PHP functie te gebruiken : " mysql_real_escape_string "

Teruggaan naar het eerste voorbeeld < $ username = $ _POST [ ' gebruikersnaam ' ] ; $ . . ? password = $ _POST [ ' wachtwoord' ] ; $ query = "SELECT gebruikersnaam, wachtwoord FROM gebruikers WHERE gebruikersnaam = ' $ username' en het wachtwoord = ' $ wachtwoord' " ; ? >

Ter bescherming tegen MySQL injecties directe gebruik van user input moet befiltered via " mysql_real_escape_string " . Functie " mysql_real_escape_string " zal $ username = mysql_real_escape_string ( $ _POST [ ' gebruikersnaam ' ] ) ontsnappen alle MySQL speciale tekens te verwijderen mogelijkheid om het gedrag van onze zoekopdracht wilt wijzigen

<
; . ? $ Password = mysql_real_escape_string ( $ _POST [ ,"' wachtwoord' ] ) ; $ query = "SELECT gebruikersnaam, wachtwoord FROM gebruikers WHERE gebruikersnaam = ' $ username' en het wachtwoord = ' $ wachtwoord' " ; ? >


Previous: Next:
  PHP /MySQL Programmering
·Hoe maak je een lijn wijzigen …
·CentOS voor het installeren va…
·Hoe te Data Store in MySQL met…
·Hoe kan ik PHP resultaten Cach…
·Hoe maak je een afbeelding van…
·Hoe te updaten & Verhogen MySQ…
·Hoe kan ik PHP MailTo Verwijde…
·Is er een plaatsvervanger voor…
·Hoe kan ik PHP gebruiken voor …
  Related Articles
Visual Basic Math Functions Tutorial 
Visual Basic Tutorial : Msgbox 
ListBox Visual Basic Tutorial 
Visual Basic ListView Tutorial 
Progress Bar Tutorial 
Visual Basic Database Tutorial 
VBScript & SQL Tutorial 
Visual Basic 6.0 Database Tutorial 
Tutorial voor Visual Basic Commands 
  Programmering Articles
·PHP String Tutorial 
·Hoe maak je een PHP -bestand maken met A…
·Hoe maak je een script in Linux Schrijf 
·Hoe te om Uw Eigen Video Games Met Pytho…
·Hoe te DataView converteren naar een Tre…
·Hoe Vergelijk een Date Met VB.NET 
·Hoe maak je een sprite animeren in een X…
·Hoe je het type project in Eclipse 
·Hoe kan ik een Remote Debugger gebruiken…
Copyright © Computer Kennis http://www.nldit.com