18. juni 2004 - 00:02Der er
17 kommentarer og 1 løsning
beskytte filer i dir som ikke kaldes ved link
Hej, jeg har et lidt kringlet spørgsmål. Jeg har et enkelt dir med fotos. Jeg har flere sider (php) hvorfra et link åbner et nyt vindue (javascript) og viser det foto som linket refererer til. Jeg kan se man kan bare skrive adressen til alle fotos i der og det vises i browser. Det er det jeg gerne vil undgå uden jeg skal bruge login. Diret er et fælles dir som flere filer trækker fra, så kun den fil som har referencer skal kunne se de respektive fotos og ikke andre. Kan man evt. med htaccess lave noget så man undgår der kan indtastes direkte til det enkelte foto. Uden at man bruger loginsystemer. Altså hvia man får adressen til en fil med nogle link til fotodir, så skal man ikke taste koder ind men kan trykke på linket og se fotoet - omvendt kan man ikke indtaste andre hele direkte adresser til de andre foto.
thedeathart>> den duer ikke , den låser jo bare for alt, så desværre ikke brugbar
sukos>> webstedet har låst så man ikke kan browse, så det er ok ved PHP, kan man så ikke se i kildekoden hvad billedet hedder og forsøge sig med de andre numre og så se dem der, samt se referencen og så skrive den direkte i browser, så billedet fremkommer på denne måde, som igen ikke er hensigten
-------------------
det skal fungere så der kun kan ses de foto der har a href'er og ikke andre, samt hvis muligt, at man heller ikke kan skrive den direkte stil til billedet og derved få det fra.
Altså kaldeside.php med a href til ww/foto1.jpg som så åbnes i lille vindue via en javascript jeg bruger.
foto1.jpg skal så ikke kunne ses ved at skrive www.domæne.dk/foto/ww/foto1.jpg, samt at man ikke må kunne forsøge sig med www.domæne.dk/foto/ww/foto2.jpg osv osv.
Man kan ikke lave en slags login med .htacces bare hvor man giver en 'fil' lov til at have adgang og ikke med login og alt det der???
Hvis du bruger PHP til at læse filen, og derefter lave ouptut til browseren, vil man ikke kunne se stien til billedet. og hvor filen så ligger, er ligemeget. Så vil du hente billedet med f.eks. filnavn.php?id=2
hvis du bruger sessions også, vil du kunne undgå ?id=2, altså, med sessions registrere hvilket id der er tale om, og så parser filen til browseren.
hmm, vil mene det er "overkill" at bruge mysql, hvis filen alligevel skal parses med PHP. Og der er noget med at billeder gemt i mysql suger en del på serveren.
Men du kan jo evt. bruge mysql til at gemme f.eks. id, filnavn og tilhørende tekst til billedet. Endvidere evt. så også inddele billederne i kategorier
sukos>> med sessions vil det sige jeg laver en session-fil feks. fotoalle.php hvor jeg opremser alle foto i dir og så på fotolink.php har nogle af mine phplinks, som så igen åbner fotoet i f.eks fotovis.php
og kunne man få fotoalle.php (session) til selv at læse i dir hvilke fotonavne der er, så jeg ikke skal opdatere denne hvergang et foto oplades.
Jeg har nemlig en der kan slette i dir:
<?php $dir = $_SERVER["DOCUMENT_ROOT"] ."/foto/ww/"; // Min mappe med billeder
Når du får vist et stort billede, kan du ikke se hvor det egentlig bliver hentet fra. Det er så lavet med mysql også, hvor der er id, filnavn, arkiv og tekst i en table
Først klikkes arkiv Derefter, hentes id, filnavn hvor arkiv er lig med kategori. Og findes det store billede, bliver det lille billede vist, "id.jpg" som link til det store <a href=filen_selv.php?arkiv=valgtarkiv&fil=id"><img src=id.jpg"></a>
Ved klik på thumbnail, laves en iframe, hvori billedet vises, parset af php
Og phpfilen som viser billedet, hedder kun billede, uanset hvilket billede man gerne vil se
Dette link beskriver mere hvordan en person har brugt htaccess til at beskytte sit site, men da han har beskriver sine ting godt så ville jeg kigge lind på det,,,
øøøhh Det er klart at du kan bruge sukos måde at gøre det på, så det er ikke en anden måde at gøre det på.
Men det er altid godt at vide hvordan man kan beskytte sig mod at ens billeder bliver linket op fra andre site's, desvære er det meget brugt, der er desvære mange der ikke vil betale for deres trafik og derfor låner lidt fra andre steder, jeg har eks lidt problemer med kineser der forsøger at låne lidt .-(, men er man lidt opmærksom på det og køre statistik på sine log filer kommer de tydligt frem,
sukos>> jeg tror jeg begynder forfra og har valgt at bruge dit forslag fra 18/06 10:08 og så bygge videre på det. Jeg er dog ikke nogen ørn til php så lidt hjælp ville være dejligt.
Jeg forestiller mig følgende:
et 'foto' dir med flere 'linkfiler.php' samt en enkelt 'arkivfil.php og et underdir 'ww' med alle fotos
Det er så meningen at fotoet skal vises på en måde hvor der anvendes feks javascript som nu hvor man ikke kan højreklikke (ved det ikke er sikkert) evt også en kode hvor hvis man kan ikke kan anvende print screen eller print.
Nu popper fotoet op vis en javascript hvor der ikke er menulinie eller noget, så det ikke kan printes men man kan bruge print screen og det ved jeg ikke om kan stoppes.
Nå, det første er at prøve det du beskriver med sessions og parse, det lyder ret interessant.
Hej, har selv fundet en løsning via .htaccess Denne gør at der ikke kan linkes fra andre sites + at man kun kan se de fotos, som der linkes til fra ens egne sider (dvs. hvis der er flere foto i en mappe, der ikke linkes til, kan man ikke skrive adressen til fotoet og derved se det. Her er koden:
.htacces (lægges i roden)
SetEnvIfNoCase Referer "^http://www\.domænenavn\.dk/" local_ref=1 <FilesMatch "\.(gif|jpg)"> Order Allow,Deny Allow from env=local_ref </FilesMatch>
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.