Toon posts:

[ASP/.htaccess] Website beveiligen

Pagina: 1
Acties:
  • 440 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Een internetsite heb ik beveiligd met een ASP code welke indien de inloggegevens goed zijn ingevuld een aantal sessie vaiabelen aanmaakt.
De pagina's zijn nu beveiligd, echter de bestanden niet, je kan door middel van het adres
invoeren in de browser de bestanden direct downloaden, bijvoorbeeld www.mijnpagina.nl/beveiligdedirectory/bestand.mpg
Nu kan je via .htaccess directories beveiligen, nadeel hiervan is dat als je eenmaal op de site inlogd ben en je de link naar het bestand aanklikt je nog een keer moet inloggen.
Ditzelfde geldt ook voor als je via de server de directory beveiligd.
Wat ik dus zoek is een oplossing die het alleen mogelijk maakt om via de internetsite (wanneer de sessie variabelen gemaakt zijn) toegang te hebben tot bepaalde bestanden.

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Alle bestanden buiten de web-root zetten, en via een php-scriptje naar de bezoeker doorsturen wanneer deze ingelogd is.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Verwijderd

Topicstarter
Volgens mij gaat jou oplossing niet werken, je krijgt nl alleen toegang buiten de root met FTP, dus niet via een link op je site of doormiddel van een doorvoerscript.
Ik gebruik overigens ASP, wat is dus zoek is een manier om via mijn ASP code de beveiliging op te heffen.
Voorbeeld domein is:
www.mijndomein.nl
Indien je dit adres in de browser intikt krijg je een inlogscherm, hierna worden sessievarabelen aangemaakt. Aan het begin van elke pagina wordt er gecontroleert op deze sessievariabelen.
Nu staan bijvoorbeeld video bestanden in deze map
www.mijndomein.nl/veilig/
Nu wil ik een link maken die het mogelijk maakt deze video bestanden te bekijken, maar alleen als men ingelogd is

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 05-05 22:57

Creepy

Tactical Espionage Splatterer

Wat Okke zegt kan prima werken ;) De browser kan niet buiten de webroot komen, je server side scripts echter wel, dus een doorvoer script gaat prima werken ;)
PHP kent bijv. fpasstrhu om files direct door te geven aan de browser. Ik neem aan dat ASP ook zoiets kent.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Met APS kun je het ADODB.Stream object gebruiken om een object van buiten de webroot naar de browser te streamen. Op msdn is hier wel informatie over te vinden.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Bedankt voor de reacties.
Creepy beschreef passthru mogelijkheid in PHP, aangezien ik geen ervaring heb in PHP moet ik het met ASP doen, ik heb geen dergelijke functie binnen asp kunnen vinden.
Misschien jullie wel.
Wel heb ik een minder fraaie oplossing bedacht, deze werkt wel maar er zitten een paar nadelen aan:
Door middel van:
FileSystemObject.CopyFile
kan de file vanuit de beschermde directory naar een toegankelijke directory gekopieerd worden, alwaar de file geopend kan worden. Bij het sluiten van de pagina kan de file met
FileSystemObject.DeleteFile(filename[,force])
gedelete worden.
Nadeel hiervan is dat het waarschijnlijk niet werkt indien 2 x tegelijk wordt opgevraagd.

Beter zou zijn al zou er een functie zijn die de file direct toont vanuit de beveiligde directory

Verwijderd

Tijdelijke map met sessieID aanmaken bestand heen kopieren
na kopieren of redelijke tijd map en bestand weer verwijderen
werkt hier als een tiet (sessieID niet ergens weergegeven, en serverside cookies gebruiken ivm beveiliging)

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Verwijderd schreef op woensdag 29 juni 2005 @ 15:49:
Bedankt voor de reacties.
Creepy beschreef passthru mogelijkheid in PHP, aangezien ik geen ervaring heb in PHP moet ik het met ASP doen, ik heb geen dergelijke functie binnen asp kunnen vinden.
Misschien jullie wel.
Wel heb ik een minder fraaie oplossing bedacht, deze werkt wel maar er zitten een paar nadelen aan:
Door middel van:
FileSystemObject.CopyFile
kan de file vanuit de beschermde directory naar een toegankelijke directory gekopieerd worden, alwaar de file geopend kan worden. Bij het sluiten van de pagina kan de file met
FileSystemObject.DeleteFile(filename[,force])
gedelete worden.
Nadeel hiervan is dat het waarschijnlijk niet werkt indien 2 x tegelijk wordt opgevraagd.

Beter zou zijn al zou er een functie zijn die de file direct toont vanuit de beveiligde directory
Dit kan wel in ASP, zoals er boven je ook gezegd wordt.

Zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function ReadBinaryFile(FileName)
    Const adTypeBinary = 1
    
    Dim BinaryStream
    Set BinaryStream = CreateObject("ADODB.Stream")
    
    BinaryStream.Type = adTypeBinary
    
    BinaryStream.Open
    
    BinaryStream.LoadFromFile FileName
    
    ReadBinaryFile = BinaryStream.Read
    
    Response.BinaryWrite(ReadBinaryFile)
End Function

Huur mij in als freelance SEO consultant!


Verwijderd

Toevallig van de week een kleine tut geschreven (welliswaar in PHP, maar dat is vast wel om te zetten naar ASP) voor dit probleem

http://www.phpfreakz.nl/library.php?sid=19424

Misschien heb je er wat aan

Verwijderd

Topicstarter
De oplossing van "blaatkoetje" heb ik toegepast:
Indien de file door middel van een link opgevraagt wordt zal de file uit de directory buiten de wwwroot gehaald worden en in een "temp/sessionID" directory geplaats worden.
Na verloop van tijd zal de file gedelete worden.
Dit deleten heb ik nu gedaan via
<meta http-equiv="refresh" content="120;URL=deletetempvideo.asp?FileName=<%Response.Write FileName%>&UniekID=<%Response.Write UniekID%>">

Dit is geen goede oplossing lijkt me omdat er een venster geopend moet worden, de gebruiker zal hier niet op wachten, na het bekijken van het videobestand zal deze de site of misschien zijn computer afsluiten, met als gevolg dat het bestand in de temp directory blijft staan.

Daarom zoek ik een asp actie (google en w3schools.com kon mij niet verder helpen) die de delete actie actie voert met een bepaalde vertraging, is deze in ASP beschikbaar?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Waarom gebruik je niet het voorbeeld van CrashOne? Dat lijkt me een veel betere oplossing.

Je kunt in principe met ASP niets schedulen, dus naar verloop van tijd een actie uitvoeren. Serverside scripting werkt met een actie/respons en kan niet uit zichzelf iets doen. Als je dat wel wilt zul je via de taskmanager oid iets moeten schedulen, maar dat kan bij de meeste hosters niet. Je zou nog wel de verwijdercode in je Global.asa, in de Session_End sub kunnen plaatsen.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
De oplossing van CrashOne heb ik wel geprobeert maar het is niet gelukt om deze werkend te krijgen.
Wat ik gedaan heb is:
De code in dezelfde dir. zetten (testomgeving) als het videobestand en voor "FileName" de naam van het bestand opgeven.
Op deze manier kreeg ik de bekende "De pagina kan niet worden weergegeven." foutmelding van IE.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Kun je hier iets mee?

Probeer zelf ook eens creatief met google te zijn. Een van de belangrijkste dingen aan het programmeren is dat je goed kunt zoeken naar voorbeelden etc. Ik heb bijvoorbeeld voor bovenstaande link in google de zoektermen 'asp stream file' gebruikt.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

De oplossing die je zelf hebt is natuurlijk verschrikkelijk, je krijgt dubbele bestanden waardoor je server zo vol staat en iedereen kan bestanden deleten.

Ik zelf heb ooit eens een download script geschreven met verschillende opties (bijv. hetuitlezen statestieken zo dat je niet over je traffic limiet gaat).

Echter denk ik niet dat een standaard download script erg moeilijk is en er al een aardig voorbeeld staat.

Huur mij in als freelance SEO consultant!


Verwijderd

Topicstarter
Yep,
De code doet wat ik wil offtopic ->(kon ik dan ook maar zeggen van mijn zoon Sven 16-10-2004)

Nu kan ik de video files in "voor de wwwroot zetten" en toch opvragen met een link in de site.

Bedankt!!

[ Voor 86% gewijzigd door Verwijderd op 30-06-2005 19:35 ]


Verwijderd

Topicstarter
Verwijderd schreef op donderdag 30 juni 2005 @ 12:03:
Yep,
De code doet wat ik wil offtopic ->(kon ik dan ook maar zeggen van mijn zoon Sven 16-10-2004)

Nu kan ik de video files in "voor de wwwroot zetten" en toch opvragen met een link in de site.

Bedankt!!
Iets te vroeg gejuicht,
De server kan bestanden groter dan 2,5 MB niet aan.
Zijn bestanden kleiner dan 2,5MB worden deze weergeven, groter zegt IE dat deze de pagina niet kan vinden.
Is dit softwarewarematig (ASP) op te lossen of moet er een instelling op de server aangepast worden.

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Misschien dat het aan een script timeout ligt, ik zelf kan bestanden groter dan 20MB aan, groter nog nooit getest.

Huur mij in als freelance SEO consultant!


Verwijderd

Topicstarter
De ASP code
<%Response.Buffer = False%>
helpt niet
De bedoeling is dus om de " AspBufferingLimit " te verhogen, de externe server waar de site op gehost wordt verhoogt de limiet niet.
Wat betekent dat de oplossing in de code moet komen.
Via Google (zoekterm 'AspBufferingLimit') kwamen het volgende naar voren.
link 1
link 2

Zijn er heldere geesten hier in verleden ook mee te maken hebben gehad en een oplossing hebben?
Pagina: 1