Jump to content

Sad_Dreamer

Active Members
  • Posts

    655
  • Joined

  • Last visited

    Never

Everything posted by Sad_Dreamer

  1. nu mai stiu...eu sunt colectionar de tot felul de tutoriale...am peste 3gb si am gasit asta in romana si l-am pus aici
  2. Tehnica SQL injection da posibilitatea unui atacator sa execute comenzi SQL neautorizate porfitand de oportunitati neortodoxe de intrare in aplicatiile web construind interogari SQL dinamice. Acesta devine posibil deoarece PHP combina sirurile interogarilor MYSQL pe care le setezi cu variabila inainte pentru ca cineva sa poata adauga o a doua interogare sau schimba interogarea ta pentru a le oferi informatii sau acces pe care nu ar trebui sa il aiba. Cele mai obisnuite dintre aceste intrari includ apostrofuri unescaped in declaratiile SQL. PROBLEMA Considerati urmatoarea interogare SQL in PHP: $result=mysql_query('SELECT * FROM users WHERE username="'.$_GET['username'].'"'); Interogarea selecteaza toate randurile din tabelul userilor unde username-ul este acelasi cu cel din sirul de interogari. Daca priviti cu atentie, veti realiza ca declaratia este vulnerabila la SQL injection - apostroful in $_GET['username'] nu sunt , si prin urmare nu vor fi cuprinse ca parte din declaratie, ceea ce permite un comportament defectuos. Ganditi-va ce s-ar intampla daca $_GET['username'] ar fi urmatorul: " OR 1 OR username = " (dublu apostrof, urmat de textualul " OR 1 OR username = " urmat de un alt dublu apostrof). Cuprins in expresia originala, interogarea devine urmatoarea: SELECT * FROM users WHERE username = "" OR 1 OR username = "". Altfel, un dublu apostrof va ramane la sfarsitul afirmatiei. Aceasta selecteaza toate sirurile din tabelul userilor. Desi nu pare periculos, alte coduri infectate pot fi adaugate, mai ales in interogarile DELETE sau UPDATE care modifica tabelul. De asemenea, un alt sir de coduri SQL poate fi adaugat la SELECT * FROM `users` WHERE username = '' adaugand un apostrof sau o semicoloana la sfarsit, astfel sirul devene SELECT * FROM `users` WHERE username = ''; ' care cu usurinta se transforma in SELECT * FROM `users` WHERE username = ''; DELETE * FROM `forum` WHERE title != '' SOLUTIA Niciodata sa nu aveti incredere in informatiile userului, procesati informatia numai dupa validare. De regula, aceasta se face prin pattern matching. In exemplul urmator, username-ul este restrictionat la caractere alfanumerice plus underscore si cu o lungime cuprinsa intre 8-20 caractere – modificati la nevoie. if (preg_match("/^w{8,20}$/", $_GET['username'], $matches)) $result = mysql_query("SELECT * FROM users WHERE username=$matches[0]"); else // we don't bother querying the database echo "username not accepted"; O buna practica in codare afirma ca apostrofurile duble ar trebuie folosite mereu in oricarei informatii variabile. Ori folosing slash dublu apostrof , ori apostrof simplu, cadrand intreaga interogatie, pentru ca tipul opus de interogatie sa nu trebuiasca escaped, desi acelasi tip de apostrof trebuie escaped. $result = mysql_query('SELECT * FROM users WHERE username = "$usern"'); or $result = mysql_query("SELECT * FROM users WHERE username = "$usern" "); Pentru o siguranta mai mare, renuntati la executarea scriptului inlocuind echo cu exit() or die(). Aceasta inca se mai aplica atunci cand se folosesc checkboxuri, butoane ratio, liste de selectie, etc. Orice browser cerut (chiar si POST) poate fi REPLICATED prin telnet, situri duplicate, javascript, sau codare(chiar si PHP), asadar intotdeauna trebuie sa fiti prevazatori in privinta restrictiilor pentru codarea aferenta clientului. Folosirea mysql_real_escape_string() PHP ofera o functie care se ocupa cu inserarea userului in MySQL, si aceea este mysql_real_escape_string(string unescaped_string[, resource link_identifier]). Acest script scapa de toate caracterele potential periculoase din sir si transforma sirul escaped intr-unul prudent pentru a fi folosit in sirul MySQL. (Functia originala, myqsl_escape_string, nu a luat in considerare caracterul curent pentru a iesi din sir, nici nu a acceptat argumentul conexiunii. Este dezaprobata inca de la PHP 4.3.0) Spre exemplu, luati urmatorul exemplu: $result=mysql_query('SELECT * FROM users WHERE username="'.$_GET['username'].'"'); Aceasta poate fi escaped dupa cum urmeaza: $result=mysql_query('SELECT * FROM users WHERE username="'.mysql_real_escape_string($_GET['username']).'"'); Astfel, daca userul a incercat sa insereze o alta declaratie in afara de DELETE, ar fi interpretat inofensiv ca o parte din parametrul clauza WHERE: SELECT * FROM `users` WHERE username = '';DELETE * FROM `forum` WHERE title != '' Backslashurile adaugate de mysql_real_escape_string face ca MySQL sa le interpreteze ai degraba ca si caractere cu un singur apostrof decat ca si parte din declaratia SQL. Luati la cunostinta cu MySQL nu permite multe interogari asadar DELETE FROM din tabel nu merge oricum.
  3. agree with ghici...era o chestie pentru huburi...si cred ca ar merge si pentru siteuri...limita numarul de conexiuni cu fiecare ip..si daca un fraier da de pe pcul lui...si da mult da degeaba...nu atinge prea mult decat ca si cum ar naviga pe aici
  4. Ca sa apara la bara de status unde de obicei scrie "Done" dupa ce pagina s-a incarcat ce vrei tu introdu <body onLoad="window.defaultStatus='TEXT"> in codu HTML a fiecarei pagini a siteului tau...si in loc de TEXT scrii textul care vrei sa apara sper sa fi inteles
  5. chiar...voua va mai merge ma?ca mie nu :-I
  6. inchide un id de msn sau...alta abureala?
  7. sunt topicuri ce contin surse si sunt postate la hack tools in loc de programare...si tutorialele la fel...ar trebui sa dati putin cu matura
  8. lol...1.nu trebuia sa zici aici 2.fa-ti update fast sau reinstall av 3.pana nu faci update/reinstall av nu intra in nimic si nu lua nimic de la altii
  9. cam aiurea topicul asta...poti vota doar 1 gen de muzica...cand eu nu ascult numai rock punk :@ instrumentala :@ etc
  10. Sad_Dreamer

    rapidshare.ro

    plus ca pe asta ai limita 1gb...pe ala 100mb si pe asta nu cere cod:)
  11. esti cam nebun !_30 nu e troian ma e doar un ..fun tool nu e nimic rau ! incearca-l il poti inchide cu ctrl+alt+delete sau cu escape parca si nu-i facut de el
  12. shokere vezi ca ti-am imprumutat avatarul ...sper sa nu te superi ma joc cu el prin photoshop
  13. da...ca e pe banii altora :@
  14. daca e ultima versiune normal ca are...
  15. cookie editorul? foloseste opera...e usor si are deja cookie editor instalat
  16. inxs-afterglow the killers-somebody told me deep dish-say goodbye fort minor-where'd u go gnarles barkley-crazy louis armstorng-what a wonderfull world U2 & mary j blige-one love melissa etheridge- i will never be the same morrisey- you have killed me oasis-wanderwall paul oakenfold-hypnotised REM-loosing my religion REM-everybody hurts cateva din melodiile care imi plac
  17. <div class='quotetop'>QUOTE("Kw3[R)</div> daca iti place stronghold crusader incearca warcraft si heroes tot in genul
  18. oooups...offtopic uneori nu strica oricum mozilla sux
  19. ba da...imi tineam in mail parolele...si unele erau aceleasi cu cele de la mail...oricum..lasand asta la o parte si de pe mozilla poti deci...opera rocks btw ce metoda ai folosit?
×
×
  • Create New...