Avatar billede brownghost Nybegynder
10. august 2004 - 14:17 Der er 17 kommentarer og
1 løsning

Image.asp file sikkerhed.

Hejsa p min side har jeg en file jeg bruger når jeg skal vise bilelder, den heddder image.asp, mit problem er at nogle ripper sider bruge den file og så viser mine billeder p å deres side. Ved at lave dem her: <img src="http://www.minside.dk/image.asp?id=7270">

Er der nogle der har gode idéer til hvordan jeg sikre den file så den kun kan bruges på mit domæne?

Det jeg gerne vil have er at filen ikke vier noget hvis den brugs på andre sider.
Kan dette lade sig gøre, eller er der andre der har gode ideer ?

Tak
Avatar billede snowball Novice
10. august 2004 - 14:21 #1
Mon ikke du kan bruge noget i stil med http://www.eksperten.dk/spm/519606 !?
Avatar billede brownghost Nybegynder
10. august 2004 - 14:55 #2
virker ikke, så viser min side ikke mine billeder :(
Avatar billede brownghost Nybegynder
10. august 2004 - 16:43 #3
Har forsøgt at blocke dem via ip også men virker heller ikke :(
Any one please help... de ligger min server totalt ned ;(
Avatar billede KingMedia Novice
10. august 2004 - 17:38 #4
Jeg har faktisk lavet noget lignende til mig selv. netop for at undgå al den trafik fra deeplinks.. 

Min Image.asp

________________


<%

' database variabler, server, pass osv.

strServer            = "xxxxx"           
strDbUser            = "xxxxx"       
strDbPass            = "xxxxx"       
strDb                = "xxxxx"       

set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={mySQL}; " &_
"Server=" & StrServer & "; " &_
"Port=3306; " &_
"Option=131072; Stmt=; " &_
"uid=" & strDbUser & "; " &_
"pwd=" & strDbPass & ";"


' Henter billede via <img src="image.asp?x=1234">

Pic = Request.QueryString("x")

set rs2 = conn.execute("SELECT * FROM " & strDb & ".pic Where x = '" & Pic & "'")

PicFile = RS2("file")
Path    = Replace(RS2("Path"), "/", "\")

sFile = "D:\xxx\xxxxx\wwwroot\Gallery\Pics\" & Path & PicFile

' Hvis Session er sat, så kan billedet tilgås..  (Session("SiteView") sætter jeg på min indgangsside...     
   
    If Session("siteView") = True Then
       

            ' Opretter en fileStream. mine billeder er JPEG, men tilsyneladende virker det med ContentType = "image/gif"


                Set objStream = Server.CreateObject("ADODB.Stream")
                objStream.Open
                Const adTypeBinary = 1
                objStream.Type = adTypeBinary
                objStream.LoadFromFile sFile
                ContentType = "image/gif"
                Response.AddHeader "content-disposition","attachment; filename="& PicFile
                Response.Charset = "UTF-8"
                Response.ContentType = ContentType

                Response.BinaryWrite objStream.Read
                Response.Flush

        Else

            ' Hvis ikke Session er sat, så vises et andet billede.
            ' "D:\xxxx\xxxxx\wwwroot\Gallery\gfx\deep.gif"

                Set objStream = Server.CreateObject("ADODB.Stream")
                objStream.Open
                objStream.Type = adTypeBinary
                objStream.LoadFromFile "D:\xxxx\xxxxx\wwwroot\Gallery\gfx\deep.gif"
                ContentType = "image/gif"
                Response.AddHeader "content-disposition","attachment; filename=noDeepLinking"
                Response.Charset = "UTF-8"
                Response.ContentType = ContentType
                Response.BinaryWrite objStream.Read
                Response.Flush
   
    End If
%>


/Mads
Avatar billede websam Nybegynder
11. august 2004 - 00:05 #5
Hvorfor virker det ikke med ip blokering, det har jeg tidligere brugt til opgaver af samme type ?

En helt anden mulighed er at ligge dit id i en session så dit id ikke er at se i headeren :

http://www.minside.dk/image.asp

Din session sætter du så i det øjeblik du trækker id'et fra databasen :

Session("imgId") = Rs("Id")

Når du så har loadet din image.asp side nulstiller du blot din session :

Session("imgId") = ""

På den måde fjerner du muligheden for at andre kan hotlinke dine billeder :o)

/Websam
Avatar billede brownghost Nybegynder
11. august 2004 - 01:51 #6
test
Avatar billede brownghost Nybegynder
11. august 2004 - 01:53 #7
takker det virker, men har et problem.

jeg bruger den image file fler gange på samme side, det betyder hvis jeg nulstiller min session er det kun det første bille der vises :(

kan vi finde en løsning på det?
måske sætte en time out på sessionen eller sådan noget?
Avatar billede websam Nybegynder
11. august 2004 - 08:47 #8
Nej du nulstiller blot din session nederst på siden :

</body>
</html>
<%Session("imgId") = ""%>

På den måde kan du bruge den på hele siden :o)

/Websam
Avatar billede KingMedia Novice
11. august 2004 - 17:34 #9
På min løsning, selvom du kan se ID'et i URL'en, kan du stadig ikke hotlinke til billedet :o)

/Mads
Avatar billede brownghost Nybegynder
11. august 2004 - 17:44 #10
websam, jeg har prøvet at lave det med session i bunden. det virker ikke.
siden loader hurtiger end de billeder bliver vist. jeg har eks en side med nyheder hvor der er bilelder, hevrt billede bliver vist ved at kalde billedet med min image file.  siden loder færdig før alle billeder er læst ind, og <%Session("imgId") = ""%>
i bunden lukker før rasten af billederne er læst ind, alså kun 1 bilelde blver vist :(
Avatar billede brownghost Nybegynder
11. august 2004 - 17:51 #11
Mads.. det er din løsning jeg har taget.
i min pagetop file sætter jeg True på den session..

i min imagefile kigger jeg efter If Session("siteView") = True Then
her kommer  min kode.
er den ikke true skriver den Fuck af rippers...

problemer er bare at en ripper der går ind på min side, åbner et nyt vindue ripper side, kan rippe, da hans session stadie er True..

der for leder jeg efter et session timeout eller sådan noget.
Har prøvet at lukke session i bunden af min side, men så lister den kun det første billede..
Avatar billede KingMedia Novice
11. august 2004 - 17:53 #12
Uanset hvordan du vender og drejer det, vil du _altid_ kunne rippe det :o)

Men din forespørgsel gik jo på, om det kunne "bindes" til dit domæne..  altså undgå hotlink/deeplinks, for at undgå tyveri af båndbredde ?!

Eller er jeg galt på den ?

/Mads
Avatar billede brownghost Nybegynder
11. august 2004 - 19:02 #13
ja det er at binde det itl mine domæner..

det virker fint mangler bare et kunne afslutte den session på tid. kun den session
Avatar billede KingMedia Novice
12. august 2004 - 17:30 #14
Den afslutter jo selv efter ca 20 min.. 

folk vil godt kunne rippe det.. altså

<img src="image.asp?id=1234">

Men folk vil jo ikke kunne se billedet medmindre den session du har sat er aktiv :o)

/Mads
Avatar billede brownghost Nybegynder
12. august 2004 - 19:44 #15
men kan man ikke lave en time out på en speciel session efter et bestemt stykke tid?
Avatar billede KingMedia Novice
13. august 2004 - 19:40 #16
ikke hvad jeg ved af.. 
Jeg ved du kan bruge Session.Abandon()
Men tror ikke at noget som eks. Session("siteView").Abandon()  vil virke :o)

/Mads
Avatar billede KingMedia Novice
19. august 2004 - 22:22 #17
Fandt du en løsning ? ..  smider i hvert tilfælde et svar. :o)

/Mads
Avatar billede brownghost Nybegynder
21. august 2004 - 13:34 #18
Jeps jeg takker bruger den session sitewiew :)
og det virker næsten 100%

TAK :)
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
Kurser inden for grundlæggende programmering

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