Avatar billede kimg Nybegynder
22. februar 2004 - 10:05 Der er 16 kommentarer og
1 løsning

Fil kun kaldes fra bestemt side

Jeg har en mappe med en masse filer, man må ikke kunne kalde filerne ved at indtaste filnavnet i browser adresse linien, det skal kun være muligt at kalde dem fra min index.php
Hvordan kan det løses.
Filer i mappen er ikke .php filer, det havd gjort det lidt lettere ;-)

Kim
Avatar billede sukos Juniormester
22. februar 2004 - 10:15 #1
Mig bekendt er det ikke muligt, andet end hvis du vælger først at kopiere filerne, og derefter sletter dem igen. :O)
Men jeg kan sagtens ta' fejl jo! :O))))
Avatar billede kimg Nybegynder
22. februar 2004 - 10:53 #2
Det er muligt du har ret har søgt en del steder de sidste par dage, jeg overvejede om det måske var mulig, med noget .htaccess.

Kim
Avatar billede sukos Juniormester
22. februar 2004 - 11:02 #3
njahh, fordi hvis du f.eks. vil vise et billede, skal det jo kunne nås via http, d.v.s du kan ikke bruge f.eks. Options None i en .htaccess, da så heller ikke selv kan vise det på din side.
Du kan med .htaccess hindre at folk viser dine filer på deres egen side, men det er jo ikke hvad du spørger om.
Avatar billede kimg Nybegynder
22. februar 2004 - 11:16 #4
Ja, det bliver nok svært.
Jeg skal bruge således.

bruger kan oprette en side, den bliver gemt som .html side.
det var disse sider jeg ville have vist via min/i index.php side. (html er tilladt)

Så overvejede jeg at gemme dem som .php sider, men så ville jeg give bruger mulighed for at afvikle kode. Men mit problem ville være løst.

Kan du se en anden vinkel på problem.
Avatar billede intenz Novice
22. februar 2004 - 11:56 #5
Jeg har selv lige løst samme problem for en, fik det løst vha. en .htaccess fil med følgende indhold:

-------------
RewriteEngine on
Rewritebase /

#RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.mogenshoj.dk.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://mogenshoj.dk/.*$ [NC]

RewriteRule .*\.(gif|GIF|jpg|JPG|swf|SWF)$  [R]
------------

Dette gør at filerne med filnavnet i den nederste linje kun kan hente fra mit domæne (mogenshoj.dk)
Avatar billede intenz Novice
22. februar 2004 - 12:01 #6
Du kan se et eksempel på det her:
http://www.mogenshoj.dk/test.html

her vises mit test billede (bare et jeg lige uploadede).
I koden kan du se at det henter billedet fra:
http://81.7.135.217/mads-test/test.gif

Men hvis du taster den ind direkte i browser adressen virker det ikke.
Avatar billede kimg Nybegynder
22. februar 2004 - 12:02 #7
De må godt hentes fra et andet domæne, bare kun igennem index.php
Avatar billede intenz Novice
22. februar 2004 - 12:08 #8
Mener du fx at den kan hentes sådan:
http://www.ditdomæne.dk/index.php?hent=http://www.blabla.dk/filnavn.xxx

men ikke bare ved:
http://www.blabla.dk/filnavn.xxx

?
Ellers forstår jeg det ikke
Avatar billede kimg Nybegynder
22. februar 2004 - 12:10 #9
som det kører nu:

Bruger opretter side nyside.html

Når siden skal vises kaldes den på denne måde: index.php?side=nyside

jeg vil undgå at den kan kaldes på denne måde nyside.html
Avatar billede intenz Novice
22. februar 2004 - 12:16 #10
Kan man ikke bare chmod nyside.html så den ikke har execute rettigheder, men kun read/write.
Så kan du åbne og udskrive indholde af filen vha.:

$fp = fopen("http://www.ditdomæne.dk/nyside.html", "r");
while (!feof($fp)) $indhold .= fgets($fp, 4092);
fclose($fp);
print "$indhold";


ville det ikke virke ?
Avatar billede kimg Nybegynder
22. februar 2004 - 12:24 #11
Filen ville stadigt kunne kaldes via browser http://www.ditdomæne.dk/nyside.html
Avatar billede sukos Juniormester
22. februar 2004 - 12:29 #12
HTTP_REFERER ville jeg ikke stole på, p.g.a. firewalls/proxi'er
Men en enkelt html fil kan jo includes fra et dir som ikke kan nås via http
Avatar billede intenz Novice
22. februar 2004 - 12:36 #13
Så kan jeg ikke lige gennemskue det.
Hvad med evt. at oprette filerne som nogle andet end html filer.
Fx. nyside.xxx altså noget som browseren ikke vil forbinde med html filer og derfor ikke vil åbne.

Så kan du åbne og skrive dem vha.

$fp = fopen("http://www.ditdomæne.dk/nyside.html", "r");
while (!feof($fp)) $indhold .= fgets($fp, 4092);
fclose($fp);
print "$indhold";
Avatar billede kimg Nybegynder
22. februar 2004 - 12:45 #14
Sukos>> Hvad tænker du på her
"Men en enkelt html fil kan jo includes fra et dir som ikke kan nås via http"
Avatar billede sukos Juniormester
22. februar 2004 - 12:52 #15
f.eks
readfile("fuld/sti/til/fil/udenfor/httpadgang/fil.html");
Avatar billede sukos Juniormester
22. februar 2004 - 12:54 #16
Hmm, man kan jo også nægte adgang til bestemte filer, som f.eks. .htaccess, men hvor en include/readfile vil måske virke?
Anyway, på en win maskine er sikkerhed ikke det samme som på en UNIX.
Avatar billede kimg Nybegynder
27. april 2004 - 07:10 #17
Lukker, men tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester