[linux-programlama] Re: PHP'de form islemede yasanan degisken sorunu

---------

From: Enver ALTIN (enver.altin@frontsite.com.tr)
Date: Thu 21 Aug 2003 - 09:58:27 EEST

  • Next message: kaptan: "[linux-programlama] Re: PHP'de form islemede yasanan degisken sorunu"

    Content-Type: text/plain; charset=iso-8859-9
    Content-Transfer-Encoding: quoted-printable
    On Thu, 2003-08-21 at 09:09, kaptan wrote:

    > Surum 4.2.2-17 RH9 default RPM
    > Apache da 2.0.40
    > Ben yazdiklarinizi deneyecegim, sagolun...
    > Benim asil takintim RH'deki paketlerin tamami kurulu oldugu halde bu soru=
    nu=20
    > yasamam, yanilmiyorsam bug vb olsa da bu sekilde kurulumlarda temel=20
    > bicimlerde konfigurasyon sistem kurulumu ile birlikte yapiliyordu...=20

    PHP'de register_globals=3Don neden bir g=FCvenlik a=E7=FD=F0=FDd=FDr?

    =D6nce baz=FD temel bilgiler:

         1. PHP'de http://sunucu/dosya1.php?degisken=3Ddeger adresinde en
            sondaki "degisken=3Ddeger" ifadesiyle belirtilen HTTP sunucu
            iste=F0i, PHP taraf=FDndan dosya1.php adl=FD script i=E7erisinde
            $degisken ad=FDnda bir global de=F0i=FEkene (ilgili de=F0er de atan=
    arak)
            aktar=FDl=FDr. Bu tip sunucu istekleri s=FDradan GET request olarak
            bilinir.
         2. Benzer bi=E7imde HTML <form> kullan=FDlarak <INPUT> ile gelen form
            de=F0erleri bir PHP script i=E7erisine global de=F0i=FEkenler olara=
    k
            aktar=FDlabilir. Buna da HTTP'de POST request diyoruz.
         3. HTTP protokol=FC, e=F0er client da destekliyorsa COOKIE denen baz=
    =FD
            =F6zel bilgileri ta=FE=FDyabilir. PHP, client taraf=FDndan g=F6nder=
    ilen
            cookie i=E7erisindeki tan=FDmlar=FD da birer global de=F0i=FEken ol=
    arak
            aktaracakt=FDr.
         4. PHP, session takibi yapabilir (detay=FDna girmeyece=F0im). SESSION
            i=E7erisine kaydetti=F0imiz (session_register() ile) de=F0erler de
            birer global de=F0i=FEken olarak aktar=FDlacakt=FDr.

    PHP, register_globals=3Don konumunda bu de=F0erleri global de=F0i=FEkenlere
    terc=FCme ederken =F6ntan=FDml=FD olarak GPCS (GET, POST, COOKIE, SESSION)
    s=FDralamas=FDn=FD izler. Buna g=F6re COOKIE i=E7erisinde ve GET i=E7erisin=
    de ayn=FD
    adda birer de=F0i=FEken varsa, =DEimdi d=FC=FE=FCnelim, bir form var:

            <form method=3Dpost action=3D"dosya2.php?degisken1=3Ddeneme">
           =20
                    <input type=3Dtext name=3Ddegisken1 value=3D"deneme2">
                    <input type=3Dsubmit>
           =20
            </form>

    bu formda farkedece=F0iniz gibi hem form action olarak tan=FDmlanan URI bir
    GET request gibi kullan=FDlm=FD=FE ve bir de=F0i=FEken aktar=FDlm=FD=FE; he=
    m de form
    i=E7erisinde ayn=FD adda bir de=F0i=FEken var. Sizce degisken1'in de=F0eri =
    nedir?
    Ben s=F6yleyeyim, GPCS s=FDras=FDna g=F6re "deneme2" olacakt=FDr.

    Buna g=F6re bir kullan=FDc=FD, kendisine ait COOKIE bilgileri ile oynay=FDp=
     POST
    ve GET de=F0i=FEkenlerinin =FCzerine yazabilir. Ayr=FDca di=F0er de=F0i=FEk=
    enlerin de
    =FCzerine yazabilir. Bu metodla initialize etmedi=F0iniz herhangi bir
    de=F0i=FEkenin =FCzerine kullan=FDc=FD taraf=FDndan bir bilgi yaz=FDlabilir=
    .

    Ancak register_globals=3Doff oldu=F0unda, GET de=F0i=FEkenleri i=E7in $_GET=
    [],
    POST i=E7in $_POST[], COOKIE i=E7in $_COOKIE[] ve SESSION i=E7in de
    $_SESSION[] kullan=FDl=FDr. Dolay=FDs=FDyla kullan=FDc=FDlar sizin PHP i=E7=
    erisinde
    tan=FDmlad=FD=F0=FDn=FDz de=F0i=FEkenlere =F6nde=F0erler atayamazlar ve bu =
    bir g=FCvenlik
    =F6rne=F0idir.

    Bu sorun, PHP ile yaz=FDl=FDm geli=FEtiren programc=FDlar=FDn dikkate almas=
    =FD gerek
    bir noktad=FDr ama kesinlikle PHP tasar=FDm=FDnda bir bug de=F0ildir.

    Sayg=FDlar,

    --=20
     __________
    | |
    | | Enver ALTIN (a.k.a. skyblue)
    | | Software developer, IT consultant
    | FRONT |
    |=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D| FrontSITE Bilgi Teknolojisi A.S.
    |_____SITE_| http://www.frontsite.com.tr/

    -- Attached file included as plaintext by Ecartis --
    -- File: signature.asc
    -- Desc: This is a digitally signed message part

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.1 (GNU/Linux)

    iD8DBQA/RG2SbBGEy3UvbLoRAhS1AJ0dvddI8Kql/o8K7pTmI5CwgDts0ACguI1z
    UGJriVQ8Bn8VG+z2pY7vQgo=
    =kPep
    -----END PGP SIGNATURE-----


  • Next message: kaptan: "[linux-programlama] Re: PHP'de form islemede yasanan degisken sorunu"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.