Toon posts:

[ASP] Pagina beveiligen tegen gebruik op eigen site.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een asp pagina. Daarin staan wat handige gegevens. Voor die gegevens betalen wij geld om ze te mogen laten zien. Nu staan die gegevens in een iFrame.

Het komt geregeld voor dat mensen deze iFrame op hun eigen site zetten, en klaar, geheel gratis van mijn site gegevens "gejat". Dat wil ik dus verkomen.

Stel dit is de iFrame code:
code:
1
2
3
<iframe name="Ticker" marginwidth="1"
 marginheight="1" height="15" width="629" border="0" frameborder="0"
 src="data/?SESSION=<%=session.SessionID%>" scrolling="no"></iframe>
Hier heb ik dus voor gezorgt dat jouw session ID in een querystring staat.

Tot dus ver werkt het perfect: Als jouw sessionID niet overeenkomt met wat er in de querystring staat, mag je de iFrame niet laten weergeven.

Maar nu zie ik steeds vaker, als je bijv. binnenkomt via een bookmark, dat de iFrame niet geladen wordt, omdat de session's niet overeenkomen.

Cach is het probleem dus: Ik heb van alles geprobeerd om die te omzeilen, maar zonder succes :(

Iemand nog een manier om pagina's te beveiligen?

Tnx

PS: Het is geen solution om het met een Include File te doen...

[ Voor 29% gewijzigd door Verwijderd op 18-06-2003 07:43 ]


Verwijderd

Een random getal in een cookie zetten, en in de querystring en dan vergelijken. ( ik weet niet of het mogelijk ik, tis maar een idee)

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Een random getal in een cookie zetten, en in de querystring en dan vergelijken. ( ik weet niet of het mogelijk ik, tis maar een idee)
Dan heb je hetzelfde probleem indien de user zijn/haar cookies verwijderd. ;)
Maar nu zie ik steeds vaker, als je bijv. binnenkomt via een bookmark, dat de iFrame niet geladen wordt, omdat de session's niet overeenkomen.
Je zou toch ook eerst kunnen controleren of de sessionID aanwezig is en overeenkomt met die in de url en in het geval dat dit niet zo is de user te redirecten naar een pagina met een nieuwe querystring :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Maak een sessievariabele in je hoofdpagina en kijk dan in je iframe of de gebruiker die sessievariabele heeft :)
vb.
main.asp
Session("blabla") = "1"
iframe.asp
If Session("blabla") <> "1" Then
Server.transfer "koopdegegevenszelf.asp"
End If

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

If Session("blabla") <> "1" Then
Server.transfer "koopdegegevenszelf.asp"
End If
En dit is dus wat de TS probeert te verkomen aangezien wanneer je middels een bookmark de site bezoekt je dus ook wordt geredirect naar koopdegegevenszelf.asp ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
Verwijderd schreef op 18 juni 2003 @ 08:11:
Maak een sessievariabele in je hoofdpagina en kijk dan in je iframe of de gebruiker die sessievariabele heeft :)
vb.
main.asp
Session("blabla") = "1"
iframe.asp
If Session("blabla") <> "1" Then
Server.transfer "koopdegegevenszelf.asp"
End If
Dat zit je eigenlijk met het zelfde probleem. Dat bijv. MAIN.ASP gecashed is en iFrame.asp geladen wordt, beetje lullig als er dan een pagina komt: "Man, koop je eigen gegevens!" (dan zit je ook nog met het probleem dat men sessie cookies kan uitschakelen...

Nu zat ik te denken aan zoiets:
ASP:
1
2
3
4
5
<%
If NOT instr(request.servervariables("HTTP_REFERER"),"www.mijnwebsite.nl") > 0 then
Response.redirect("koopdegegevenszelf.asp")
end if
%>

Maar ik vraag me af of HTTP referer wel zo betrouwbaar is. Werkt dat bij iedereen? Hebben jullie nog andere suggesties?

[ Voor 9% gewijzigd door Verwijderd op 18-06-2003 08:17 ]


Verwijderd

Topicstarter
schop

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Maar ik vraag me af of HTTP referer wel zo betrouwbaar is. Werkt dat bij iedereen? Hebben jullie nog andere suggesties?
Echt betrouwbaar is het niet aangezien dit is te faken. Daarnaast hoeft dit ook niet bij elke gebruiker te werken aangezien er ook firewalls zijn die deze gegevens blocken. (bijv. Norton IS)
Je zou de methode kunnen gebruiken die ik eerder noemde (dus gewoon redirecten naar een nieuwe url+sessionID indien de huidige niet overeenkomt. )
Wat je anders ook kan doen is gebruik te maken van de servervariable SCRIPT-NAME
ASP:
1
Request.ServerVariable("SCRIPT-NAME")

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Verwijderd schreef op 18 June 2003 @ 08:16:
Maar ik vraag me af of HTTP referer wel zo betrouwbaar is. Werkt dat bij iedereen? Hebben jullie nog andere suggesties?
Staat niet bij iedereen aan, maar het is een begin :) Als de referer ongelijk aan "" moet het jouw domein zijn, anders wordt ie op een andere pagina gebruikt.

Alles is natuurlijk te faken, maar niet vanuit een pagina. Als iemand jouw iframe jat en m op zn eigen site zet, zullen de bezoekers van die site vervolgens moeten gaan faken, en dat zie ik niet zo snel gebeuren eigenlijk.

Exact expert nodig?


Verwijderd

Topicstarter
Crazy D schreef op 26 juni 2003 @ 12:47:
[...]

Staat niet bij iedereen aan, maar het is een begin :) Als de referer ongelijk aan "" moet het jouw domein zijn, anders wordt ie op een andere pagina gebruikt.

Alles is natuurlijk te faken, maar niet vanuit een pagina. Als iemand jouw iframe jat en m op zn eigen site zet, zullen de bezoekers van die site vervolgens moeten gaan faken, en dat zie ik niet zo snel gebeuren eigenlijk.
Maar het is dan wel weer mogelijk om mét faken server-side de pagina op te halen...

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-08 18:29
Het is toch eigenlijk heel erg logisch dat je dit nooit kunt beveiligen? Je maakt gegevens openbaar, dus waar iedereen(ja je leest eht goed:iedereen) naar kan kijken. De gegevens die wij kunnen zien kun je natuurlijk ook met een programma er uit halen.

Wat je trouwens wel kunt doen is zorgen dat de code om de gegevens steeds veranderd, voorbeeldje:
Als je al je gegevens netjes in een DIV zet met een id="de dure informatie" is het natuurlijk heel eenvoudig om deze er uit te halen. Je zou de pagina binnen dat frame dus zodanig kunnen volstoppen met nutteloze info en je kunt die pagina op een dynamische manier steeds onduidelijker maken waardoor het vrijwel onmogelijk is om die informatie er correct uit te halen. Je zou bijvoorbeeld de informatie de ene keer helemaal kunnen escapen en de andere keer weer niet.. Ook kun je er natuurlijk een plaatje van maken ;)

Verwijderd

anti cach:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<% response.expires = 0 %>

Verwijderd

Topicstarter
djluc schreef op 28 June 2003 @ 11:09:Ook kun je er natuurlijk een plaatje van maken ;)
Nog geen .NET :(

Verwijderd

Topicstarter
:z

[ Voor 100% gewijzigd door Verwijderd op 28-06-2003 19:57 ]


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Verwijderd schreef op 27 June 2003 @ 10:48:
Maar het is dan wel weer mogelijk om mét faken server-side de pagina op te halen...
Maar dat probleem hou je per definitie. Je kunt in de main-pagina ook de iframe weghalen en de inhoud zelf server-side op te halen, en dan de hele pagina tonen. Maar ook dat is weer voor een 3e website van jouw site af te halen...

Exact expert nodig?


Verwijderd

Topicstarter
Crazy D schreef op 28 June 2003 @ 19:22:
[...]

Maar dat probleem hou je per definitie. Je kunt in de main-pagina ook de iframe weghalen en de inhoud zelf server-side op te halen, en dan de hele pagina tonen. Maar ook dat is weer voor een 3e website van jouw site af te halen...
Ik zat eigenlijk nu aan een combi te denken:
ASP:
1
2
3
4
5
6
7
8
9
10
11
<% response.expires = 0 %>
<%
if instr(request.servervariables("HTTP_REFERER"),"www.mijnsite.nl") <= 0 then
   if request.Querystring("sessie") <> session.sessionid then

      response.write("U maakt gebruik van een onzekere verbinding ... bla bla bla")
      response.end

   end if
end if
%>
Hoeveel % kans denk je dat er nog "onschuldige" mensen deze foutmelding zien?
Verwijderd schreef op 28 juni 2003 @ 11:15:
anti cach:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<% response.expires = 0 %>
Ja, bedankt, begrijp nu waar je op doelt, op die session die niet weg wilt gaan. bedankt.

[ Voor 32% gewijzigd door Verwijderd op 28-06-2003 19:58 ]


  • brokenp
  • Registratie: December 2001
  • Laatst online: 23:48
Wil je dat mensen die wel lid zijn van jouw site wel links kunnen opslaan? anders kan je nl overwegen om bijv te linken naar jouwpagina?page='q' waarbij q een versleuteling is vanhet sessionID en de huidige datum. Als deze encryptie sterk genoeg is, dan kan men hooguit de gegevens er 1 dag vanafhalen, daarna klopt de link niet meer.
Als men dus vanuit een andere site deze gegevens wil aanbieden dan moet men elke dag kijken naar dwe link van dag.
En dan moet je daarbij natuurlijk ook nog naar referers enzo kijken
Pagina: 1