Htaccess
Hier een vraagje over htaccess ,
Wat ik graag wil is de directory blokkeren waar mijn include bestanden staan /include
In deze directory staan meerdere bestanden die via Ajax opgeroepen worden , nu wil ik dat de bezoeker doorverwezen wordt naar index in de root directory als ze naar de url www.mijndomein.nl/include gaan
Weet iemand hoe ik dit doe met htaccess
Voor de duidelijkheid het moet nog wel toegankelijk blijven voor Ajax requests ,
Ik wil graag hetzelfde voor de directory /scripts waar verschillende JavaScript bestanden staan
Alvast bedankt voor eventuele reacties
Wat ik graag wil is de directory blokkeren waar mijn include bestanden staan /include
In deze directory staan meerdere bestanden die via Ajax opgeroepen worden , nu wil ik dat de bezoeker doorverwezen wordt naar index in de root directory als ze naar de url www.mijndomein.nl/include gaan
Weet iemand hoe ik dit doe met htaccess
Voor de duidelijkheid het moet nog wel toegankelijk blijven voor Ajax requests ,
Ik wil graag hetzelfde voor de directory /scripts waar verschillende JavaScript bestanden staan
Alvast bedankt voor eventuele reacties
Dan zul je het moeten zoeken in Filesmatch in de .htaccess file.
http://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess.html
Persoonlijk vind ik dat je het dan wel nodeloos ingewikkeld maakt door publieke en privé bestanden door elkaar te zetten in één directory. Ik zou toch overwegen om de publieke (ajax) uit de include directory te halen.
http://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess.html
Persoonlijk vind ik dat je het dan wel nodeloos ingewikkeld maakt door publieke en privé bestanden door elkaar te zetten in één directory. Ik zou toch overwegen om de publieke (ajax) uit de include directory te halen.
Gewijzigd op 09/07/2014 21:13:23 door Frank Nietbelangrijk
Maar moet ik dan alle files die in deze directory staan apart opgeven met filematch , of kan ik ook heel deze directory blokkeren ?
Nee je kunt in ieder geval niet heel de directory blokkeren. Er zijn twee mogelijkheden: bestanden blokkeren die aan een bepaalde match voldoen (bijv. alle bestanden die beginnen met 'include_') of je moet inderdaad alle bestandsnamen apart opgeven.
Gewijzigd op 09/07/2014 21:33:59 door Frank Nietbelangrijk
Kun je niet met een .htaccess iets doen met Deny for all ?
Zo is mij vanmiddag namelijk wel verteld, in deze post
Dan sluit je de hele map af, en als iemand dan naar (een bestand in) de map wil gaan, krijgt deze persoon een 403 (unauthorized access) error te zien.
Zo is mij vanmiddag namelijk wel verteld, in deze post
Dan sluit je de hele map af, en als iemand dan naar (een bestand in) de map wil gaan, krijgt deze persoon een 403 (unauthorized access) error te zien.
Gewijzigd op 09/07/2014 21:44:02 door Kevin Zegikniet
@ frank oke bedankt , dan moet ik denk ik alle bestand namen aanpassen dat ze beginnen met include_ ,
@kevin met deny for all worden deze bestanden ook geblokkeerd voor Ajax requests dus dit is helaas geen optie
@kevin met deny for all worden deze bestanden ook geblokkeerd voor Ajax requests dus dit is helaas geen optie
Beveiligen met sessies?
Hoe kan ik een directory beveiligen met sessies ?
Ik wil namelijk dat niemand naar deze directory kan gaan ook niet als er een sessie actief is
Ik wil namelijk dat niemand naar deze directory kan gaan ook niet als er een sessie actief is
Bij de bron aanpakken, de bestanden beveiligen met een sessie!
Vraag 1)
Kun je de map met include bestanden niet in een privé-map zetten (dus een niveau hoger dan de document root)?
Vraag 2)
Of beter gezegd tip 2...
Zet gewoon een index.php bestand in de map "include" met als inhoud:
Kun je de map met include bestanden niet in een privé-map zetten (dus een niveau hoger dan de document root)?
Vraag 2)
Of beter gezegd tip 2...
Zet gewoon een index.php bestand in de map "include" met als inhoud:
Een map beveiligen is zo gedaan met een index.php file.
De scripts zelf beveiligen is een ander verhaal. Deze worden door het client-side AJAX opgevraagd, hierdoor is het plaatsen ervan buiten de webroot geen oplossing.
De scripts zelf beveiligen is een ander verhaal. Deze worden door het client-side AJAX opgevraagd, hierdoor is het plaatsen ervan buiten de webroot geen oplossing.
Gewijzigd op 10/07/2014 01:19:51 door - Ariën -
Oke dus index bestand dan inderdaad geen optie ,
Maar hoe moet ik het zien met sessies ?
Maar hoe moet ik het zien met sessies ?
Op de site een random getal genereren en deze opslaan in een sessie, en hierop controleren in je AJAX-scripts via GET.
Gewijzigd op 10/07/2014 01:28:03 door - Ariën -
>> Oke dus index bestand dan inderdaad geen optie ,
Maar hoe moet ik het zien met sessies ?
Wat wil je nu dan eigenlijk bereiken? Als je niet wil dat mensen je bestanden rechtstreeks aanroepen, dan moet je ze buiten de public directory zetten. Of heb je daar geen toegang toe?
Maar hoe moet ik het zien met sessies ?
Wat wil je nu dan eigenlijk bereiken? Als je niet wil dat mensen je bestanden rechtstreeks aanroepen, dan moet je ze buiten de public directory zetten. Of heb je daar geen toegang toe?
Ozzie, jouw tip 2 is GEEN beveiliging. Ik hoop dat dat duidelijk is?
@Frank:
Maar wel een antwoord op deze vraag:
>> nu wil ik dat de bezoeker doorverwezen wordt naar index in de root directory als ze naar de url www.mijndomein.nl/include gaan
Toch?
Maar wel een antwoord op deze vraag:
>> nu wil ik dat de bezoeker doorverwezen wordt naar index in de root directory als ze naar de url www.mijndomein.nl/include gaan
Toch?
Ozzie PHP op 10/07/2014 01:46:12:
Wat wil je nu dan eigenlijk bereiken? Als je niet wil dat mensen je bestanden rechtstreeks aanroepen, dan moet je ze buiten de public directory zetten. Of heb je daar geen toegang toe?
Precies die tip had ik al helemaal aan het begin gegeven.
Toevoeging op 10/07/2014 01:56:40:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
|
|- [private] --> hier alle php scripts waarop niet 'geland' mag worden en dus ook jouw includes
|
|- [www] --> de root van je website! (vanaf hier publiek toegankelijk)
|
|- [css] --> hier je css bestanden
|
|- [javascript] --> hier je javascript bestanden
|
|- [images] --> hier je plaatjes
|
|- [ajax] --> hier je ajax
|
|- index.php --> je homepage!
|- [private] --> hier alle php scripts waarop niet 'geland' mag worden en dus ook jouw includes
|
|- [www] --> de root van je website! (vanaf hier publiek toegankelijk)
|
|- [css] --> hier je css bestanden
|
|- [javascript] --> hier je javascript bestanden
|
|- [images] --> hier je plaatjes
|
|- [ajax] --> hier je ajax
|
|- index.php --> je homepage!
Yup, maar er wordt niet echt op ingegaan. Ik snap ook niet helemaal wat hij wil, en waarom. Als het enkel erom gaat dat men niet mijnsite.nl/include/ kan aanroepen, dan werkt zo'n index file prima.
Het is wel duidelijk wat Stefan wil: hij heeft Ajax-bestanden tussen de includes staan en wil dat die niet rechtstreeks worden aangeroepen, maar alleen met een Ajax-request.
Om te beginnen moet je dan, zoals Frank aangaf, de PHP-includes buiten de root opslaan en de Ajax-bestanden binnen de root, bijvoorbeeld in een map /ajax/. So far, so good, dat was eerder al uitgelegd.
Het blokkeren van directe aanroepen van Ajax-bestanden is andere koek. Je kunt dat niet waterdicht maken, omdat ze open moeten staan voor HTTP-requests. Wel kun je ze redelijk dichttimmeren met sessies, tokens en wat HTTP-headers.
Om te beginnen moet je dan, zoals Frank aangaf, de PHP-includes buiten de root opslaan en de Ajax-bestanden binnen de root, bijvoorbeeld in een map /ajax/. So far, so good, dat was eerder al uitgelegd.
Het blokkeren van directe aanroepen van Ajax-bestanden is andere koek. Je kunt dat niet waterdicht maken, omdat ze open moeten staan voor HTTP-requests. Wel kun je ze redelijk dichttimmeren met sessies, tokens en wat HTTP-headers.
Oke bedankt voor de reactie
De php bestanden dus buiten de root (www)
Maar benader ik die dan, ik dacht namelijk dat alleen bestanden benaderd kunnen worden binnen de root
De php bestanden dus buiten de root (www)
Maar benader ik die dan, ik dacht namelijk dat alleen bestanden benaderd kunnen worden binnen de root
Als je iets met PHP includeert dan kan dat ook met bestanden buiten de webroot.
Als je met AJAX een bestand uitvoert, moet deze wel bereikbaar zijn in de webroot.
Als je met AJAX een bestand uitvoert, moet deze wel bereikbaar zijn in de webroot.




