Protecția site-ului de prevenirea hacking-ului de injecții SQL

Într-un articol recent despre cum să hackați site-urile expuse injecțiilor SQL. Am vorbit despre programul SQLMAP. În timpul redactării articolului (mai exact, traducerea și testarea metodei), am fost neplăcut surprins de numărul de site-uri care sunt mai mult sau mai puțin susceptibile la injecții SQL.







Având în vedere popularitatea acestor instrumente SQLMAP și ei, precum și un număr mare de site-uri care fac obiectul SQL preparate injectabile, am decis să scrie câteva sfaturi programatori novice în PHP, cum de a proteja baza de date împotriva hacking.

Pentru a determina dacă scriptul este vulnerabil, voi folosi SQLMAP, voi face acest lucru nu pe localhost, ci pe hosting real. Pentru a accelera procesul de testare a diferitelor variante de script-uri, le voi edita direct pe hosting (Cum să editați fișiere direct pe gazdă). Să mergem.

Ceea ce este trecut la parametrul t este trimis direct la cererea sql.

În el este scris un script în mod deliberat vulnerabil:

Doar o linie nouă a salvat toate problemele:

Protecția site-ului de prevenirea hacking-ului de injecții SQL

Amintiți-vă că pentru a afișa (precum și pentru a filtra) aveți nevoie de absolut toate datele care apar "din această parte", adică de la utilizator. Chiar și cookie-urile, chiar și cele care aparent sunt codate greu: de exemplu, în lista derulantă există trei opțiuni - și opțiunea selectată este trimisă serverului. Se părea că dimensiunea predeterminată poate ajuta cu injecțiile SQL? Totul este foarte simplu, browserele moderne, chiar și fără plug-in-uri speciale, vă permit să editați codul HTML în zbor. Ie vă așteptați la una dintre cele trei valori și obțineți o interogare SQL inteligentă.

O altă greșeală obișnuită - începătorii programatorilor cred că există o pagină "pentru toți" - aceștia sunt cei responsabili pentru site. Și există numai pagini pentru webmaster: admin, scripturi tehnice etc. Și acești programatori sunt leneși (sau nu consideră că este necesar) pentru a ecraniza / filtra datele. Aceasta este o greșeală groasă - trebuie să ecranați și să filtrați peste tot!







2. Filtrarea datelor și aducerea acestora la tipul așteptat

Ați observat că în loc de $ _GET ['t'] folosesc filter_input (INPUT_GET, 't'). Fac asta pentru un motiv.

Dacă ne așteptăm să primim doar un număr, atunci folosiți aproximativ filtrul_input (INPUT_GET, 't', FILTER_SANITIZE_NUMBER_INT)

Dacă vrem să am aruncat toate etichetele și toate caracterele speciale, putem folosi filter_input (INPUT_POST, „t“, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW), ca urmare a elimina toate etichetele sunt eliminate și caractere speciale sunt codificate.

Să luăm primul nostru script vulnerabil și să încercăm să îl filtram în felul următor:

Ie parametrul este vulnerabil la injectarea orb.

5. Verificați toate variabilele pentru posibilitatea injectării

Variabile care sunt adesea trecute cu vederea:

6. Utilizați mod_security (sau un alt firewall pentru aplicațiile web).

mod_security nu rezolvă toate problemele pentru dvs. dacă utilizați scripturi care sunt pline de bug-uri și găuri. Dar, cu toate acestea, va consolida orice server. Recomand propriile mele articole:

concluzie

În acest articol, mi-am prezentat cunoștințele, ceea ce mi-a permis să evit injecțiile SQL când programam în PHP. Eu nu pretind adevărul în ultimă instanță, așa că mă bucur să aud despre metodele și tehnicile proprii.

Subiecte conexe

Hacking o gazdă de la distanță folosind Cypher. Salutări! În acest thread, vă voi arăta cum să spargeți o gazdă de la distanță folosind Cypher. Aceasta ne va permite să adăugăm o sarcină utilă execuției.

THC-Hydra: un utilizator rapid de conectare la rețea. Programul Hydra sprijină un număr imens de servicii, datorită vitezei și fiabilității sale, și-a câștigat aprecierea deplină în rândul testerelor.

Cum se instalează AMD APP SDK în Kali Linux. Această instrucțiune este din seria despre Cum se instalează GLRX, AMD APP SDK, CAL ++ și Pyrit în Kali Linux. Ideea este să instalați driverele corecte în Kali.

Penteping VoIP cu Viproy Bună ziua, forum! Periodic, deoarece tema VoIP este aproape de mine, caut unelte pentru a testa penetrarea serverelor lor. Da, și doar un poba.

Bazele Linux - linie de comandă și fișier c. Înainte de a putea stăpâni Kali Linux, ar trebui să aveți libertatea de a naviga în conceptele de bază ale sistemului Linux. Abilitatea de a lucra cu Linux va fi foarte mult.







Articole similare

Trimiteți-le prietenilor: