![]()
From: Enver ALTIN (enver.altin@frontsite.com.tr)
Date: Thu 21 Aug 2003 - 09:58:27 EEST
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-----
![]()