Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Metode de securizare site
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Dezvoltare
Subiectul anterior :: Subiectul următor  
Autor Mesaj
Birkoff



Data înscrierii: 18/Mar/2004
Mesaje: 2309
Locație: Bucuresti

Trimis: Mar Apr 04, 2006 11:13 am    Titlul subiectului: Metode de securizare site  

Stiu ca au mai fost discutii pe tema asta aici, dar ma gandeam ca e o discutiie din care mereu se afla ceva nou asa ca o redeschid.

Voi cum va securizati site-ul? Ma refer atat la trimiterea datelor din formulare cat si la introducerea datelor in baza de date sau afisarea paginilor cu continut restrictionat doar pentru anumiti user...

Eu ma gandeam asa:
1. Site-ul e construit pe nivele de acces, nivelul cel mai de jos il are vizitatorul care poate vedea anumite pagini dar nu poate introduce nimic in baza de date.
2. La formulare, daca nu trebuie ca vizitatorul sa fie logat (gen formular de contact sau pool) verific urmatoarele:
a) datele trimise prin formular sa vina de pe acelasi domeniu cu pagina formularului (pentru a se evita preluarea datelor de pe alte domenii, trimise de roboti sau persoane cu chef de "joaca")
b) la fiecare trimitere salvez in bd ip (eventual creez un cooke) si daca de la acelasi ip au mai fost trimise datele in ultimele x secunde refuz prelucrarea lor (pentru a se evita flood-ul, trimiterea la infinit a acelorasi date)
c) masura de protectie suplimentara, generez la fiecare trimitere un nr aleator pe care il salvez intr-o variabila de sesiune, si acelasi nr il trimit prin get sau post impreuna cu datele din formular, la preluarea datelor verific daca nr trimis corespunde cu cel din sesiune - daca corespunde datele sunt ok, daca nu corespunde, e tentativa de hack si ignor datele)

3. la introducerile in baza de date, verific daca userul are drept de a introduce datele, verific daca datele sunt ok (strip slash, trim, escapestring etc...) verific daca nu au mai fost deja introduse pe ziua de azi... apoi daca au fost introduse ok fac o redirectare si ii zic ca au fost introduse cu succes

4. la afisarea paginilor cu continut restrictionat, ma bazes in special pe sesiuni, fiecare user ii acord un nr care corespune setarilor de grup sau celor individuale si in functie de acest nr, are acces la anumite pagini sau nu...
(in genul grupurilor din phpbb)

5. la sesiuni, verific ca id-ul sesiuni sa fie acelasi si sa corespunda cu ip-ul si userul curent, desi cred ca ar mai trebui facute si alte verificari la sesiuni, am auzit ca browserul AOl cam da peste cap sesiunile...

6. la formularele de login, pentru a evita programele bruteforce, pun si o poza cu un cod generat aleator, si nu permit mai mult de x incercari de logare nereusite de la acelasi ip...

Alte idei?
Sus  
raul_



Data înscrierii: 15/Sep/2005
Mesaje: 711

Trimis: Mar Apr 04, 2006 11:23 am    Titlul subiectului:  

Punctul 5 mi se pare mie sau verificarea ta va fi mereu o comparatie de genul if(true==true) ???
Sus  
Birkoff



Data înscrierii: 18/Mar/2004
Mesaje: 2309
Locație: Bucuresti

Trimis: Mar Apr 04, 2006 11:28 am    Titlul subiectului:  

raul_ a scris: Punctul 5 mi se pare mie sau verificarea ta va fi mereu o comparatie de genul if(true==true) ???

salvezi id-ul sesiunii intr-o variabila de sesiune (la logare sau la intrarea pe pagina a vizitatorului prima data) apoi in celelalte pagini compar id-ul cu valoarea din variabila de sesiune
Sus  
raul_



Data înscrierii: 15/Sep/2005
Mesaje: 711

Trimis: Mar Apr 04, 2006 11:31 am    Titlul subiectului:  

Birkoff a scris: raul_ a scris: Punctul 5 mi se pare mie sau verificarea ta va fi mereu o comparatie de genul if(true==true) ???

salvezi id-ul sesiunii intr-o variabila de sesiune (la logare sau la intrarea pe pagina a vizitatorului prima data) apoi in celelalte pagini compar id-ul cu valoarea din variabila de sesiune
Da....acum am inteles ce vrei sa spui....
Sus  
black diamond



Data înscrierii: 23/Mai/2005
Mesaje: 298

Trimis: Mar Apr 04, 2006 11:58 am    Titlul subiectului:  

<?php public function strChk($key,$val,$where) {           $codechars='[.]{0,500}';     if ( preg_match('~'.$codechars.'[;]{0,1}'.$codechars.'OR'.$codechars.'='.$codechars.'[#]{0,10}~',$val) == 1 ) {       $this->addErr('Detected sql injection exploit in '.$where.'.');                                       }     if ( preg_match('~'.$codechars.'<script>'.$codechars.'</script>'.$codechars.'~',$val) >= 1 ) {       $this->addErr('Detected remote scripting exploit in '.$where.'.');                                       }           } ?>

La ceva de genul asta ma gandesc eu de cateva zile, am un obiect $security in framework care face o verificare sumara a datelor [incerc sa fac o lista de metode uzuale de exploit]. Fiecare pagina->post isi face apoi validarea proprie pentru formulare/etc. Eu nu permit decat url-uri de genul ceva/altceva/script_php_fara_extensie si POST-uri. Get e prea 'vizibil'.
Sus  
kul



Data înscrierii: 09/Dec/2005
Mesaje: 306
Locație: cta

Trimis: Mar Apr 04, 2006 1:58 pm    Titlul subiectului:  

bd, era un proiect pe tema asta owasp. doar ce am apucat sa desfac arhiva. ce-mi place ca are mai multe nivele de sanitizare: paranoid, normal, light, etc. inca o data, n-am apucat sa-l studiez pe indelete. am mai luat si alta data niste clase de pe phpclasses si n-am fost multumit de ele.
Sus  
black diamond



Data înscrierii: 23/Mai/2005
Mesaje: 298

Trimis: Mar Apr 04, 2006 2:34 pm    Titlul subiectului:  

Da, o sa il studiez (il am pe hdd de cateva zile - tot cineva de pe forum mi-a spus de el) , dar mai intai vreau sa vad ce pot sa fac eu, si apoi compar cu ce/cum fac ei. Daca ei folosesc un mod 'corect' cu ocazia asta vad ce gresesc eu. Poate dureaza mai mult, dar invat mai repede asa.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Dezvoltare
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community