/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Julekalender - beskyt filer.
Fra : Kasper Damkjær


Dato : 24-10-01 16:53

Jeg har lavet en julekalender i PHP, der kort sagt fungerer således:

Når siden hentes, vises dagesns billede vha. $today = date("d"); Billedet
indsættes med: echo "<img src=\"img/nissepiger/$today.jpg\">";

Billederne hedder altså 1.jpg, 2.jpg, ... 24.jpg

På siden er der ligeledes mulighed for at se tidligere dages billeder vha.
følgende:
$day = 1;
while ($day < $today)
{
echo "<a href=\"julekalender.php?showday=$day\">$day</a> | ";
$day++;
}

Endvidere er der en beskyttelse, der sikrer at man ikke bare kan rette
URL'en til fx. http://www.mitsite.dk/julekalender.php?showday=24 og på den
måde se de kommende billeder.

Dog er problemet, at folk kan se i koden, at billederne ligger i
.../img/nissepiger/ og man kan også hurtigt regne ud, at filerne hedder 1, 2,
3 osv.

Hvordan forhindrer jeg at man ser billederne ved at skrive
http://www.mitsite.dk/img/nissepiger/24.jpg ?

--
Kasper Damkjær
http://www.damkjaer.net

 
 
Kim Emax - ayianapa.~ (24-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 24-10-01 17:26


"Kasper Damkjær" <usenet@damkjaer.net> skrev

> Hvordan forhindrer jeg at man ser billederne ved at skrive
> http://www.mitsite.dk/img/nissepiger/24.jpg ?

lad være med at kalde dem 1, 2, 3, 4?

smid i stedet billederne i et array:

$julepige[1] = "karen_på_knæ.jpg";
$julepige[2] = "karen_stadig_på_knæ.jpg";
$julepige[3] = "Ole_på_knæ.jpg"; # lidt for en hver smag, ik?

så kalder du det bare med date("d");

print $julepige[date("d")];

vupti, din sikkerhed er optimal, da billedet nu vises ud fra dagen i dag...
det kan der ikke fuskes med...

mon ikke jeg har gjort mig fortjent til at være med til at udvælge piger?


--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Flemming Mahler Lars~ (24-10-2001)
Kommentar
Fra : Flemming Mahler Lars~


Dato : 24-10-01 17:31

Kasper Damkjær wrote:

> Jeg har lavet en julekalender i PHP, der kort sagt fungerer således:
>
> Når siden hentes, vises dagesns billede vha. $today = date("d"); Billedet
> indsættes med: echo "<img src=\"img/nissepiger/$today.jpg\">";

>

> Hvordan forhindrer jeg at man ser billederne ved at skrive
> http://www.mitsite.dk/img/nissepiger/24.jpg ?


Du kan enten kalde billederne et eller andet "ugætteligt" og lade php-scriptet

"mappe" mellem datoen og billedet:

01 -> rdsingsrg.jpg, 02 -> sihgwggwf.jpg, ...

Frem for at lave en direkte henvisning til billedet, kunne du eventuelt
overveje at lade et php-script læse billedet og returnere det med de
rette headers. En del af dette ville naturligvis lige være at indbygge
at man ikke kunne få billeder nyere end dags dato, men i stedet fik en
låge eller ligende.

// Flemming
--
Flemming Mahler Larsen, Media & Portal Technology @ TDC Internet
http://card.netfactory.dk/ , +45 3552 6452

Jeg repræsenterer med dette indlæg mig selv og ikke TDC Internet


Jakob Kirkegaard (25-10-2001)
Kommentar
Fra : Jakob Kirkegaard


Dato : 25-10-01 18:18

Wednesday 24 October 2001 18:31 skrev Flemming Mahler Larsen:
> Du kan enten kalde billederne et eller andet "ugætteligt" og lade
> php-scriptet

Generelt skal man holde sig fra "security through obscurity", men ved
en simpel julekalender går det dog nok.

--
mvh Jakob Kirkegaard

Thïngmand (25-10-2001)
Kommentar
Fra : Thïngmand


Dato : 25-10-01 09:27

> Hvordan forhindrer jeg at man ser billederne ved at skrive
> http://www.mitsite.dk/img/nissepiger/24.jpg ?

Du kunne også proppe billederne i en DB

http://groups.google.com/groups?sourceid=navclient&q=php+mysql+billede



Per Thomsen (26-10-2001)
Kommentar
Fra : Per Thomsen


Dato : 26-10-01 14:20


"Kasper Damkjær" <usenet@damkjaer.net> skrev i en meddelelse
news:Xns9144B5D4119FAusenetdamkjaernet@194.19.194.7...
> Jeg har lavet en julekalender i PHP, der kort sagt fungerer således:
>
> Når siden hentes, vises dagesns billede vha. $today = date("d"); Billedet
> indsættes med: echo "<img src=\"img/nissepiger/$today.jpg\">";

Istedet for at linke direkte til billederne, så generer f.eks. et link der
hedder;
<IMG SRC=\""xmaximg.php?showday=$today.jpg\">";

og filen xmaximg.php ser således:

<?php

$nissePiger = array
array( 'image/jpeg', 'billede1.jpg') ,
array( 'image/jpeg', 'billede2.jpg') ,
array( 'image/gif', 'billede3.jpg'),
...
array( 'image/jpeg', 'billede24.jpg' )
);

$IMG_DIR = '/whatever/nissepiger/';

$TODAY = date('d');
$SHOWDAY = (int) trim($HTTP_GET_VARS['showday']);

if( ($SHOWDAY <= $TODAY) AND ($SHOWDAY > 0) ) {
header('Content-type: '.$nissePiger[$SHOWDAY][0]."\r\n");
readfile($IMG_DIR.$nissePiger[$SHOWDAY][1]."\r\n");
} else if( $SHOWDAY <= 0 ) {
header('Content-type: image/jpeg'."\r\n");
readfile($IMG_DIR.'fejl.jpg'."\r\n");
} else {
header('Content-type: image/jpeg'."\r\n");
readfile($IMG_DIR.'ikke_endnu.jpg');
}

?>

resten af din kode kan være stort set uberørt, men man kan ikke længere se
hvor billederne "gemmer sig".

NB! Ovenstående er utestet, og ment som en guide til hvordan det skal gøres.
[snip]

MVH Per Thomsen,
http://www.pert.dk/



Kasper Damkjær (26-10-2001)
Kommentar
Fra : Kasper Damkjær


Dato : 26-10-01 14:51

Per Thomsen skrev: (messageID: <news:9rboer$2ln3$1@news.cybercity.dk>)

> resten af din kode kan være stort set uberørt, men man kan ikke længere
> se hvor billederne "gemmer sig".
>
> NB! Ovenstående er utestet, og ment som en guide til hvordan det skal
> gøres. [snip]

OK, tak. Jeg vil prøve at arbejde lidt med deit forslag.

--
Kasper Damkjær
http://www.damkjaer.net

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste