Rezultate 1 la 8 din 8

Subiect: Functie securizare php

  1. #1
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    45
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    983
    Putere Rep
    45


    Implicit Functie securizare php

    Salut,

    Vreau sa va intreb daca urmatoarea functie este suficienta pentru a securiza un site in php care se foloseste de variabile cu valori extrase prin $_GET:

    Cod PHP:
    function securizare($var) {
        
    $var ereg_replace("[\'\")(;|`,<>]"""$var);
        
    $var = @mysql_real_escape_string($var$conexiune);
        
    $var htmlentities($var);    
        return 
    stripslashes($var);


  2. #2
    Avatarul lui deadworldisee
    deadworldisee este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    6th April 2008
    Locaţie
    iasi
    Vârstă
    37
    Posturi
    1.034
    Putere Rep
    34


    Implicit

    te-ai gandit ca mysql_real_escape_string face securizarea completa pe care o urmaresti tu? de fapt face escape la caracterele speciale in afara de '%' si'_' care sunt cam safe.

  3. #3
    Avatarul lui evolution
    evolution este deconectat Membru SeoPedia
    Reputatie:
    38
    Data înscrierii
    29th October 2006
    Locaţie
    Bucuresti
    Posturi
    997
    Putere Rep
    38


    Implicit

    Poti folosi si php strip tags

    1.ereg_replace ..<> inlocuieste numai perechea <> sau si cand e numai < ?
    2.return stripslashes($var) nu anuleaza ce ai facut cu real_escape ? Adica daca cineva vrea sa iti insereze niste linkuri si introduce "sql insert into table .." , nu exista pericolul sa se execute cand afisezi informatia in browser ?

  4. #4
    Avatarul lui beeuser
    beeuser este deconectat Membru SeoPedia
    Reputatie:
    33
    Data înscrierii
    6th July 2007
    Vârstă
    45
    Posturi
    66
    Putere Rep
    33


    Implicit

    Cam acesta ar fi procesul:

    1. Trebuie sa validezi toate campurile. Adica daca se asteapta email sa validezi email, daca se asteapta numar sa validezi numar, poti sa aplici si strip_tags daca nu se asteapta cod html. Eu de exemplu daca astept un numar intreg, fac ceva de genul $nr = intval( $_POST['nr'] ) si atunci elimin caracterele aiurea.
    2. Trebuie sa verifici daca magic_quotes_gpc sunt active/inactive si in functie de asta aplici stripslashes dupa ce se face submit la form.
    3. Aplici mysql_real_escape_string cand faci queryul la baza de date.

  5. #5
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    45
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    983
    Putere Rep
    45


    Implicit

    Citat Postat în original de beeuser Vezi Post
    3. Aplici mysql_real_escape_string cand faci queryul la baza de date.
    Adica sa il folosesc doar cand introduc sau selectez ceva din baza de date?

  6. #6
    Avatarul lui beeuser
    beeuser este deconectat Membru SeoPedia
    Reputatie:
    33
    Data înscrierii
    6th July 2007
    Vârstă
    45
    Posturi
    66
    Putere Rep
    33


    Implicit

    Adica da, mysql_real_escape_string se foloseste pentru queryul, si ca sa-l folosesti trebuie sa ai activa o conexiune la baza de data.

  7. #7
    Avatarul lui Gabriel Puscuta
    Gabriel Puscuta este deconectat Ambasador
    Reputatie:
    37
    Data înscrierii
    7th September 2006
    Locaţie
    Sibiu
    Posturi
    786
    Putere Rep
    37


    Implicit

    Uite aici poate te ajuta asta. Am scris-o mai demult.
    Cod PHP:
    function securizare(){
        
    $string parse_url($_SERVER['REQUEST_URI'],PHP_URL_QUERY);
        
    parse_str($string$output);
        foreach(
    $output as $k => $v){
            
    $key sanitize($k);
            
    $val sanitize($v);
            
    $output_arr[$key] = $val;
        }
        if(isset(
    $output_arr) && is_array($output_arr)) return $output_arr;
        else return 
    false;
    }

    function 
    sanitize($var,$santype=3){
        if(
    $santype == 1){
            return 
    strip_tags($var);
        }
        if(
    $santype == 2){
            return 
    htmlentities(strip_tags($var), ENT_QUOTES'UTF-8');
        }
        if(
    $santype == 3){
            if(!
    get_magic_quotes_gpc()){
                return 
    addslashes(htmlentities(strip_tags($var), ENT_QUOTES'UTF-8'));
            }else{
               return 
    htmlentities(strip_tags($var), ENT_QUOTES'UTF-8');
            }
        }

    Exemplu de folosire:
    Cod PHP:
    //@exemplu: http://numedomeniu.ro/test.php?key=valoare

    print_r(securizare());

    $sec securizare();
    echo 
    $sec['key']; //returneaza "valoare" 
    Daca vrei sa folosesti $_GET, faci asa:
    Cod PHP:
    //@exemplu: http://numedomeniu.ro/test.php?key=valoare

    $var sanitize($_GET['key']);
    echo 
    $var
    Sper sa-ti fie de folos. Daca nu te descurci intreaba.

    LE: mysql_real_escape_string() folosesti la query-urile MySQL cu date din $_GET sau $_POST;
    Cod PHP:
    $y sanitize($_GET['key']);
    $sql = ("SELECT * FROM tabel WHERE x='".mysql_real_escape_string($y)."' ");
    $result mysql_query($sql);
    //loop etc.. 
    Ultima modificare făcută de Gabriel Puscuta; 30th April 2009 la 22:43.

  8. #8
    Avatarul lui tis
    tis
    tis este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    9th October 2006
    Locaţie
    Cluj
    Vârstă
    42
    Posturi
    251
    Putere Rep
    34


    Implicit

    Validarea datelor in PHP e importanta dar iti recomand sa folosesti si mod_security pentru ca un site poate fi atacat si folosind caractere "normale" - ex. SQL Injection. Cu mod_security scapi de multe griji si cum e instalat pe majoritatea serverelor de hosting, iar unde nu e aproape sigur se instaleaza la cerere ca nu intra conflict cu nimic, il poti incerca.

    Eu il folosesc pe toate site-urile. Cu putina rabdare poti forma reguli complexe care iti fac site-ul aproape hackproof, chiar daca e scris prost din punct de vedere al securitatii.

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. functie replace
    De odiv în forumul Client side
    Răspunsuri: 10
    Ultimul Post: 10th December 2009, 13:11
  2. De ce parole complicate ? Securizare server.
    De evolution în forumul Server side
    Răspunsuri: 7
    Ultimul Post: 28th May 2009, 14:59
  3. Functie php SEF urls
    De Popescu Marian în forumul Server side
    Răspunsuri: 7
    Ultimul Post: 7th May 2009, 16:02
  4. Afisare continut in functie de id
    De Popescu Marian în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 2nd May 2009, 16:40
  5. Metode de securizare a platilor Internet
    De costy_cv9 în forumul Comert electronic, e-Commerce
    Răspunsuri: 1
    Ultimul Post: 31st October 2007, 13:29

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •