Avatar billede simsen Mester
03. juli 2010 - 20:48 Der er 4 kommentarer og
1 løsning

encrypt/decrypt billede sti

Hej,

Jeg er gået igang med at lave et site for en bekendt. Her er det så vigtigt, at brugerne ikke kan læse stien til billedet og dermed hente original billedet (vi taler alm. mennesker og ikke nørder der kan bryde koder).... Og ja, han er godt klar over, at de bare kan tage et skærmprint og så åbne i f.eks. Photoshop....Han vil bare undgå de henter original billedet....

Til det har jeg kigget lidt på Scors måde at gøre det på - altså encrypte/decrypte adressen....

Det fungerer som sådan også......

Jeg encrypter billedets adresse når den uploades - gemmer den encryptede adresse i databasen og når billedet så skal vises på siden (Test.aspx) - gør jeg således:

imgTest.ImageUrl = "TestImage.aspx?filename=" + encryptedName;

I TestImage.aspx decrypter jeg så billedet og dette virker så også perfekt....

Men hvis jeg nu i adresselinjen skriver TestImage.aspx?filename=EnLangEncryptetLinje (som jeg har læst i source koden.....) så fremkommer billedet noget så fint og nydeligt......modsat Scor.dk - hvis man gør det hos dem på samme måde, får man en fejlside op, der siger:
"The XML page cannot be displayed" og et eller anden om at den ikke kan se XML input using style sheet and invalid character was found.

Kan nogen guide mig hen til, hvordan de har gjort det på Scor.... så man ikke kan se billedet, hvis man går udenom Test.aspx siden?

mvh
simsen
Avatar billede jantzen88 Nybegynder
03. juli 2010 - 21:51 #1
Hvis jeg var dig ville jeg med htaccess blockere for at brugerne kan hente billederne direkte :)
og beklager har ikke lige noget kode liggende men ved det er muligt - htaccess mod_rewirte
Avatar billede Syska Mester
03. juli 2010 - 21:58 #2
Ja, nu er det bare postet i C#, Så mon han kører en Apache :-)

Men du kan nok gøre det med noget HttpModule og andre sjove ting, ved at se efter referer og sikkert andre ting ...

mvh
Avatar billede windcape Praktikant
03. juli 2010 - 23:24 #3
Hvis din browser kan vise billedet, kan brugeren også hente det. Det normale trick er at lægge en gennemsigtig boks hen over billedet, så man ikke kan højreklikke og hente det derfra.

Alt andet er spild af tid. Og du ødelægger brugeres muligheder for cache, og nedsætter derfor performancen af dit website.

Du bør generelt ikke vise billeder, hvis du ikke mener brugeren skal have lov at tage en lokal kopi. Vi skriver år 2010, ikke 1995.
Avatar billede simsen Mester
04. juli 2010 - 11:05 #4
jantzen88
buzzzz har ret.......Jeg kan desværre ikke bruge htaccess til noget som helst.

buzzzz
Du er bare en snut....Jeg har brugt så mange dage på at finde en løsning og så er den så simpel som noget kan være....... Request.UrlReferrer giver mig hvor forespørgslen stammer fra - og jo netop det jeg skal bruge.....så den kun kører koden, hvis det er fra Test.aspx - så rigtig mange tak - smid et svar og pointsene er dine :-) *hvisker lige så ingen andre kan høre det......han er en hun - og jo jeg ved det er svært at se *GG**

windcape
Mange tak fordi du ikke forsøgte at gøre det her til endnu en debat, om det smarte i, at forsøge i videst muligt omfang at passe på sine billeder på nettet....Det er jo set 1 million gange før :-)
Avatar billede Syska Mester
04. juli 2010 - 23:26 #5
han er en hun :-s ... woot, lost me here ...

Det er i hvert fald den nemme løsning, så ingen udbytter din bandwidth på deres hjemmeside, hvilket jeg synes er smart. Men du bør måske tillade hvis der ikke er en referrer ...

Men hvad folk må og ikke må, er lidt som windcape siger, gammeldags, men det at spare bandwidth for folk som leecher din hjemmeside uden at give credits ... ARGH, hate em.

og svar
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

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