Ekstre PHP superglobal'leri kullanarak hangi riskler vardır?

1 Cevap php

Hola usando estas funciones, que riesgo corro en tener problemas de seguridad, es necesesario usar ekstresi () o saman alguna manera mejor de convertir las değişkenler superglobales (dizi) tr trozos de değişkenler.


İyi, $ _Pos ve $ _GET gibi süper küresel değişkenler fonksiyon özü kullanarak bazı riski vardır, ben şu şekilde çalışır.

SQL enjeksiyon riski vardır veya ayıklamak için bir alternatif var

if(get_magic_quotes_gpc()) {
    $_GET = stripslashes($_GET);
    $_POST =stripslashes($_POST);
}

function vars_globals($value = '') {
    if(is_array($value))
        $r = &$value;
    else
        parse_str($value, $r);

    return  $r;
}

$r = vars_globals($_GET);

extract($r, EXTR_SKIP);

1 Cevap

Evet bir risk vardır. Sen körü körüne simge tabloya kullanıcı girişi almak istemiyorum. Kullanıcı girişi doğrulamak ve / veya sterilize zaman almalıdır. filter_var function bu konuda yardımcı olabilir.

Bir veritabanına eklerken, enjeksiyon olasılığını ortadan kaldırmak için sürücünün kaçış mekanizmasını kullanın. Eğer mysql_ * fonksiyonlarını kullanarak ediyorsanız, mysql_real_escape_string kullanmak istiyorum. Ancak, bunun için PDO ve parametreli sorgular kullanmak çok daha iyidir.