Jump to content
php.lv forumi

MySql injekcija


snach15

Recommended Posts

nekad nēesmu mēģinājis iepriekš veikt injekciju, gribēju pastīties kā tas notiek, lai saprastu un tad arī labāk var aizsargāties no viņas, uztaisīju vienkāršu neaizsargātu formu un caur inputu nosūtīju injekciju, piemēram drop table users--'  ,bet nav reakcijas nekādas, neskaitot to kad viņš to tekstu kuru sūtu ieliek manā tabulā, mēģināju citus kodus un arī neiet.. kā pareizi veic injekciju un ja daru pareizi tad kpc nenotiek tas kam vajadzētu notikt?

Link to comment
Share on other sites

daGrevja piemērs ir reālākais variants. Injekcijas notiek tad, ja nevalidē datus. Pašsaprotami, ka visus datus, kas nāk no nedrošiem avotiem, ir jāvalidē. Visi dati, kas nāk no interneta, ir nedroši. Arī tie, kas nāk caur hidden laukiem, JS/Ajax, Flash, kurus normāls lietotājs neredz, bet prasmīgs lietotājs var viegli pamainīt.

 

$userId = (int) $_POST['user_id'];

 

un visādi tur OR i pazudīs. Protams, vēl jāpārbauda, vai POST mainīgais eksistē un vai attiecīgo user_id ir tiesības dzēst. Bet, ja rīkojas šādi:

 

$sql = 'DELETE FROM users WHERE user_id = ' . $_POST['user_id'];

 

tad pazudīs datubāzes ieraksti, pazudīs arī reputācija, arī darbs... tad viss pazudīs!

 

Tekstu gadījumā, protams, escape string. Elementāri! Un nekādā gadījumā risinājums nav kaut kas vairāk par iesācēja izmēģinājuma kodu, ja tas neļauj meklēt un atrast, piemēram, «SIA "Traktors"».

 

Starp citu, ` un ' ir atšķirīgas lietas.

Edited by Mr.Key
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...