Jump to content

MaHaReT

Active Members
  • Posts

    900
  • Joined

  • Last visited

Everything posted by MaHaReT

  1. si io am sp3 [de fapt sp2 modificat] cand ajung acasa frec o poza , vad io ... ! amu-s la sc
  2. MaHaReT

    robot !

    made in japan , fucking , made in sua the best da tre sa mai asteptzi vo 100 de ani ! cu bani ? dai o gaura-ntr-o banca din elvetzia , si nu mai ai treaba toata viatza decat cu politzai
  3. incerc si io , da nu am "materiale" , timp si ... ce-i mai important ... talent ... si nici un program "fericit"[bun] ... asta la-m fcaut in Logo Creeator am sa fac altu , dar cand am materiale , un program calumea si .... talent )
  4. wtf ? nu mi rusine deducetzi singuri io nu zic nik
  5. MaHaReT

    robot !

    daca va fi folosit in lupta , nu va fi folositor deloc , ii prea mare , si pe teren denivelat pica-n nas !
  6. 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.
  7. Nu am folosit niciodata Smarty, desi implementarea lui are anumite avantaje. Insa am fost nevoit: stiti cum sunt designerii. Am construit cateva clase care ma ajuta sa pornesc repede un template, fie cu Smarty, fie fara. Intotdeauna trebuie sa fii pregatit sa faci munca HTML, si nu as vrea sa ma incetinesc cu Smarty. Am construit o clasa de baza, pe care mai apoi voi construi alte doua clase: una pentru include-uri, care va compune un template normal, si alta pentru Smarty. Aplicatia va hotari cand este cazul sa construiasca obiectul pe Smarty si cand nu. Aceasta abordare este interesanta si din punctul de vedere al optimizarii vitezei de executie: de ce sa incarci Smarty daca nu iti trebuie? Iata clasa de baza, denumita iView. Abstract class iView { var $registry; var $model; var $action; function __construct($model,$action){ $this->model = $model; $this->action = $action; parent::__construct(); if(function_exists($this->__init())) $this->__init(); } abstract function render(); } Templateurile mele sunt denumite in forma model_action.tpl – de aici necesitatea variabilelor $model si $action. In afara de acestea, clasa defineste alte doua functii. Prima este __init, pe care o va apela la construire, dar doar daca exista. Dupa cum vom vedea, Smarty va avea nevoie de o initializare, care se va petrece in aceasta functie. In cealalta clasa, pe care o vom apela daca nu vom folosi Smarty, nu va fi nevoie de __init(). A doua functie, render() este de tip abstract. Asta inseamna ca fiecare copil o va implementa, lucru normal, de altfel – este metoda principala a acestui grup de clase. Sa construim mai intai clasa SimpleHTML pentru cazurile In care nu vom folosi Smarty. Ea va implementa doar functia render(), care va include templateurile conform variabilelor model si action. class VSimpleHTML extends iView { function render(){ $this->_pageTitle = $this->model.$this->action; if(file_exists('app/public/header.tpl')) include 'app/public/header.tpl'; if(file_exists('app/views/'.$this->model.'/'.$this->action.'.tpl'))include 'app/views/'.$this->model.'/'.$this->action.'.tpl'; if(file_exists('app/public/footer.tpl')) include 'app/public/footer.tpl'; } } Acestea sunt include-urile mele. Cred ca arata destul de familiar pentru a nu mai fi explicate. Acum sa trecem la clasa de smarty. Aplicatia Smarty consta intr-o serie de clase legate impreuna in smarty.class.php din directorul libs/. Aceasta clasa va trebui instantiata pentru a avea acces la Smarty. Dupa cum am spus, vom folosi functia __init() pentru acest lucru. class VSmarty extends iView { var $smarty; function __init(){ require (SMARTY_DIR. 'libs/smarty.class.php'); $this->smarty = new Smarty(); $this->smarty->template_dir = MAIN_PATH.'/templates'; $this->smarty->compile_dir = MAIN_PATH.'/templates_c'; $this->smarty->config_dir = MAIN_PATH.'/configs'; $this->smarty->cache_dir = MAIN_PATH.'/cache'; } function render(){ $this->smarty->display($this->model. '_'.$this->action.'.tpl'); } } La Inceput se va apela functia __init(), asa cum am definit in constructorul clasei de baza. Aici instantiem obiectul Smarty si setam caile de acces. Structura de baza a Smarty consta in patru directoare: • templates_dir – locul templateurilor de baza (create de designer) • compile_dir – locul templateurilor compilate – aici intra templateurile de baza impreuna cu fisierele pe care le includ • config_dir – locul fisierelor de configurare • cache_dir – directorul de cache Asta este toata initializarea de care avem nevoie. Vom stoca templateurile in directorul „templates/”, numindu-le dupa conventia stabilita: model_actiune.tpl. In functie de cele doua variabile vom randa templateul In functia render() folosind functia smarty::Display. Ati observat cele doua constante: fac viata mai usoara. Integrarea Smarty este foarte simpla in acest mod si, daca nu va convine, puteti trece imediat inapoi pe HTML simplu. Pe viitor, ati putea cu usurinta adauga o clasa care sa randeze RSS-uri sau PDF-uri. Daca aveti nelamuriri, acum avem si sectiune de comentarii, courtesy of AHAH. Poate pe viitor voi arata cum sa implementam un presenter de PDF.
  8. hoa , fete ?? mai era una parca , mai demult sa facut un "test" cate fete catzi baietzi , eram vo 30 baietzi si 1 fata amu-s 2 ... sa speram ca facetzi treaba [sa fitzi active pe forum si nu numai ma refeream ...]
  9. nimeni nu sa nascut destept , toata viatza invatzam cate ceva, zilnic , invetzi cate ceva nou ! parerea mea pt. cei noi venitzi ori sa foloseasca , Cãutare pt ceea ce-i intereseaza [daca-i intereseaza ceva in special ...] daca nu , sa inceapa cu ultimele pagini tutoriale/tutoriale video exploit etc .... daca vrei sa faci treaba calumea , iei din spate post cu post si invetzi ... daca stai sa vezi numa ce-i nou pe froum ... noi sa fim sanatosi ! [pe mine nu ma pasioneaza cate posturi am , din partea mea sa fie resetate sa-mi scrie ca am 1 , nu aia conteaza]
  10. "nu sti cum e sa dai o mui-en fuga" bah vad ca avem paci numa "fu**ci**i" y` am small .. vine vremea ...
  11. run - pwla cmd -pwla task manager - pwla 2 conturi , admin , guest 2 parole , admin[daca-s stio ... uh] ,guest 1 ,2 , 3 ... solutzie ?
  12. 4 me , Razvan in stanga , RsT dreapta ... imagini . ar fi bun aia din matrix cu cifrele "cazatoare" .... daca se poate daca se vrea ... doar noaptea-i mai lunga ca ..... etc
  13. MaHaReT

    O perla

    de deschis potzi sa le deschizi [schimbi extensia] da nu-s ce o sa vezi[auzi] ...
  14. MaHaReT

    Game on!!!

    [OffTopic] Locaþie: Petrosani doamne , creca esti singuru de pe aici care stie unde-i Vulcanu serios
  15. fratzicaa ce face plictiseala din om .... dute freaca un php si revinotzi , fura un id ce va ... plm frate da tare te mai plictisesti , cu gravidele bah mie de la 18 in jos ca-s mic
  16. scuzatzi , lam pus acum ... cred ca va va deranja culoarea gri pe alb , o putetzi schimba ... ! rapidshare.ro : megaupload.com'>http://rapidshare.ro/download.php?id=zMHALqQVmfrnJm7jA06s megaupload.com : filehost.ro'>http://www.megaupload.com/?d=NIJM7I5V filehost.ro : pass'>http://www.filehost.ro/175185/Hacking_Kitt_pentru_incepatori_si_nivel_mediu_rar/ pass : rst-crew
  17. stupid intrebare .... ! cum marea masi merg ??? ca leam rulat [.exe] si miau aparut reclame ... [siteuri] intr-o cocioaba de fereastra .... ! edit : am reust ... y am n00b !
  18. sitzi trebuia macara sa-l ridi [io stau la et 6 , mureau vecini ] asta creca era "calculator de buzunar" vorba vine , calcula 2 ori 2 = 5
  19. MaHaReT

    hmmm

    lasa omule , iubirea-i mare , fete-s multe , gasesti u alta , sau daca nu te imaci cu ia ... a mea-i plecata-n spania plm noi sa fim sanatosi , si ce mai asteptzi amu potzi sa-l omori pe ala ... cu santaju , nu mai ai ce pierde acuma stie si prietena,,,sau fosta infine ,rupei fasu , fatzi o stampila de fier cu RST si incingeo si fai ca si la cal
  20. trebuia fara alcool , nu potzi lucra sub influentza sau poate ma insel ai niste idei cand esti baut ... olio
  21. Rusia security team ))) [nu mere linku]
  22. ce vorbesti mah ? downlandat 5 partzi deopdata cu proxy , fara cont pemium ! da altai problema dupaia [asa am patzit eu] am folosit Switch Proxy si mi sa luat si ip-u meu in el ... cred ... ca dupa un timp , destul de lung de pacalire , cand intram fara proxy , zicea sa astept 30/60/22/43 minte pt a putea dld , cu toate ca eu nu mai dld de ceva vreme de pe rapidshare !
  23. eu sunt multzumit de viteza mea ... noaptea dld si cu 1 mega/s dar ziua ... 40-60 kb/s ! nu vreau sa patzesc ceva la pc pt 10 kb ziua la 12:02 299.1 Kbps - You 299.1 kbps
  24. tura asta am facuto lata na-m pus linku , era-m obosit nu e link de dld http://alyn460.8k.ro/programare/
×
×
  • Create New...