Beschrijving
bool
is_uploaded_file
( string filename)
Geeft
TRUE
terug
als
het
bestand
aangegeven
bij
filename
Geeft
TRUE
terug
als
het
bestand
aangegeven
bij
filename
geupload
is
via
HTTP
POST
.
Dit
is
handig
om
te
controleren
of
een
kwaadwillige
gebruiker
niet
probeert
het
script
voor
de
gek
te
houden
door
hem
te
laten
werken
met
bestanden
waarmee
hij
niet
behoort
te
werken
,
bijvoorbeeld
/
etc
/
passwd
Deze
controle
is
zeker
van
belang
als
er
enige
kans
is
dat
iets
met
het
geuploade
bestand
gedaan
wordt
dat
de
inhoud
van
het
bestand
prijs
kan
geven
aan
de
gebruiker
,
of
zelfs
aan
enige
andere
gebruiker
op
het
systeem
.
is_uploaded_file(
)
is
alleen
beschikbaar
vanaf
PHP
3.0.16
en
PHP
4.0.2
.
Als
je
vast
zit
aan
vroegere
versies
,
dan
kan
je
de
volgende
functies
gebruiken
om
jezelf
te
beschermen
:
Opmerking
:
Het
volgende
voorbeeld
werkt
niet
in
PHP
4.0.2
of
HOGER
.
Het
is
afhankelijk
van
interne
functionaliteiten
van
PHP
die
na
deze
versie
veranderd
zijn
.
?php
/
*
Userland
test
voor
geuploade
files
.
*
/
function
is_uploaded_file(
$filename
)
{
if
(!$tmp_file
=
get_cfg_var('upload_tmp_dir')
)
{
$tmp_file
=
dirname(tempnam(''
,
''))
;
}
$tmp_file
.=
'
/
'
.
basename($filename)
;
/
*
Gebruikt
kan
slashes
aan
het
eind
hebben
in
php.ini..
.
*
/
return
(ereg_replace('
/
+'
,
'
/
'
,
$tmp_file
)
==
$filename)
;
}
/
*
Dit
is
hoe
je
het
gebruiken
moet
,
omdat
je
ook
*
geen
move_uploaded_file(
)
hebt
in
deze
oudere
*
versies
:
*
/
if
(is_uploaded_file($HTTP_POST_FILES['userfile'])
)
{
copy($HTTP_POST_FILES['userfile']
,
"
/
place
/
to
/
put
/
uploaded
/
file")
;
}
else
{
echo
"Mogelijke
bestand
upload
aanval
:
bestandsnaam
'$HTTP_POST_FILES[userfile]'
."
;
}
?
|
Zie
ook
move_uploaded_file(
)
,
en
de
sectie
Bestanden
uploaden
afhandelen
voor
een
simpel
voorbeeld
.