.htaccess, is dit wel veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

05/01/2011 11:28:48
Quote Anchor link
Bij tutorials kom je vaak een htaccess bestand tegen met daarin de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
RewriteEngine on // zet rewrite engine aan

RewriteCond %{REQUEST_FILENAME} !-f // controleer of url niet naar een bestand verwijst
RewriteCond %{REQUEST_FILENAME} !-d // controleer of url niet naar een directory verwijst

RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA] // stuur alles wat niet naar een bestand of directory verwijst door naar index.php

Nu is mijn vraag de volgende. Je wil dat css bestanden, jpg's, wmv's enz niet worden doorgestuurd naar index.php. Dit wordt bewerkstelligd door deze regel in het htaccess bestand: RewriteCond %{REQUEST_FILENAME} !-f

Echter, ik vraag me af of dit wel velig is. Volgens mij kun je nu toch ook gewoon php bestanden aanroepen? Dit zijn immers ook gewoon bestanden. Als je dus de naam en locatie van een bestand weet, kun je dit bestand volgens mij rechtstreeks aanroepen. Correct?

Indien bovengenoemde waar is , dan zou een alternatief zijn om alleen bestanden die NIET een bepaalde bestandsextensie hebben door te sturen naar index.php. Dan krijg je zoiets als:

RewriteRule !\.(bmp|css|csv|doc|jpg|js|zip|enz|enz|enz)$ index.php

Deze oplossing is (denk ik) veiliger. Echter, om er voor te zorgen dat alle afbeeldingen, filmpjes, documenten etc niet naar index.php worden gestuurd, zul je alle extensies moeten toevoegen in deze rewrite regel wat ik vrij omslachtig vind aamgezien dit er misschien wel 30 of meer zijn. Stel dat er bovendien een nieuw bestandstype uitkomt dan zou je dat telkens weer moeten toevoegen.

Wie weet een betere oplossing waardoor web(html, html, php, phtml enz) documenten naar index worden gestuurd en alle overige bestanden (jpg, css, doc, zip enz) niet?
 
PHP hulp

PHP hulp

26/09/2022 18:01:20
 
TJVB tvb

TJVB tvb

05/01/2011 11:33:45
Quote Anchor link
Vaak zie je dat dan alleen index.php in de webroot staat (naast de css, javascript etc)
Dan is de vraag hoe erg is het als iemand je index.php los aanroept?
 
Ozzie PHP

Ozzie PHP

05/01/2011 11:37:32
Quote Anchor link
Ja maar zo'n htaccess bestand is overkoepelend dus je zou (indien dit bestand op de betreffende locatie bestaat) ook config/config.ini kunnen aanroepen.
 
Chris -

Chris -

05/01/2011 11:46:05
Quote Anchor link
Je config zet je buiten je webroot. Doe je dit niet, ben je een ei en vraag je erom.
 
TJVB tvb

TJVB tvb

05/01/2011 11:47:13
Quote Anchor link
Aangezien bij mij alles buiten de webroot staat kunnen ze daar niet bij.
Voorbeeld
/application/... <- de classes etc
/config/config.ini
/public_html/index.php
/public_html/.htaccess

public_html is mijn webroot, zo kunnen ze niet bij mijn config

Door het buiten de webroot te plaatsen voorkom je ook dat het te lezen is als bijvoorbeeld php tijdelijk niet werkt. (Ik heb wel eens gezien dat blijkbaar PHP overnieuw gecompiled werd en je daardoor ineens de code kon lezen)
Gewijzigd op 05/01/2011 11:55:01 door TJVB tvb
 
Ozzie PHP

Ozzie PHP

05/01/2011 11:51:37
Quote Anchor link
Tuurlijk zet je je config buiten je webroot... ik geef dit dus alleen even als voorbeeld. Ik wil gewoon niet dat iemand een webdocument kan aanroepen.
 
TJVB tvb

TJVB tvb

05/01/2011 11:54:47
Quote Anchor link
Wat voor documenten zet je er dan neer die aangeroepen worden? Dat begrijp ik niet.

Aanroepbaar zijn:
-css
-javascript
-afbeeldingen
-index.php (waar alle verdere requesten naartoe gestuurd worden)
 
Ozzie PHP

Ozzie PHP

05/01/2011 12:00:09
Quote Anchor link
Stel mijn index.php bestand zoekt in de private map naar een bepaald bestand. Stel dat dit bestand niet gevonden wordt, dan moet een 'not found' pagina worden getoond. Deze pagina moet nooit getoond worden, behalve als tijdens het installeren op de server iets fout gaat. Maar als je wil zou je dus die pagina kunnen aanroepen. Daarom wil ik dus voorkomen dat je uberhaupt een webpagina kan aanroepen.
 
TJVB tvb

TJVB tvb

05/01/2011 12:01:38
Quote Anchor link
Dan kun je dat toch als eis van je installatie zeggen dat dit bestand verwijderd moet worden?
 
Ozzie PHP

Ozzie PHP

05/01/2011 12:05:42
Quote Anchor link
Ja maar dat wil ik niet. De vraag is nu dus hoe ik op de beste manier een htaccess bestand kan maken zodat jpg's, wmv's enz NIET worden doorgestuurd naar index.php en de rest wel.
 
TJVB tvb

TJVB tvb

05/01/2011 12:11:00
Quote Anchor link
Waarom niet? Ik krijg eerlijk gezegd het idee dat je moeilijk doet om het moeilijk doen.

Je wilt dat een bestand eerst wel aan te roepen is (tijdens je installatie) en daarna niet meer. Nu kun je automatisch je .htaccess aanpassen of automatisch dat bestand verwijderen.
Of je moet één van beide handmatig doen.

Je hebt al weergegeven hoe je bestanden uitsluit van je regel. Je kunt op dezelfde manier juist besluiten alleen requesten naar .php bestanden naar je index te sturen.

Het kan zijn dat ik je geheel verkeerd begrijp en dan hoor ik graag wat ik verkeerd begrijp.
 
Ozzie PHP

Ozzie PHP

05/01/2011 13:03:10
Quote Anchor link
Ik wil een framework bouwen waarbij ik dit soort url's kan gebruiken:

www.mijnsite.nl/kantoorartikelen/nietmachines

Intern wordt deze url dan geroute naar een controller en action. Daarom moet deze url dus doorgestuurd worden naar index.php

Alleen bepaalde bestanden als jpg wmv etc. mogen rechtstreeks worden aangeroepen. Maar nu ik erover nadenk is dit RewriteRule !\.(bmp|css|csv|doc|jpg|js|zip|enz|enz|enz)$ index.php dan toch de enige optie???? Alleen niet zo onderhoudsvriendelijk... en al die extensies moeten gecontroleerd worden :(
 
Chris -

Chris -

05/01/2011 13:59:34
Quote Anchor link
Je zet je style, images e.d. allemaal op een subdomein. Heeft ook als voordeel dat je laadtijd korter is :-)
 
Ozzie PHP

Ozzie PHP

05/01/2011 14:18:00
Quote Anchor link
Ik heb een ander idee... alles wat geen file is of eindigt op een bepaalde extensie(van een webpagina) ga ik doorsturen naar index.php

Echter ik weet niet hoe ik dat in m'n htaccess krijg:

RewriteCond %{REQUEST_FILENAME} !-f

// De regel hierboven en hieronder moeten met elkaar worden verbonden door middel van een OR. Iemand een idee hoe?

RewriteCond %{REQUEST_FILENAME} .(ini|htm|html|php|phtml|txt)$
 
Chris -

Chris -

05/01/2011 14:40:51
Quote Anchor link
Alles is een bestand Ozzie, denk eens logisch na.. Waarom zet je het niet simpel op een subdomein? Scheelt je een hoop werk en de laadtijd van je website wordt verkort..
 
Kevin de Groot

Kevin de Groot

05/01/2011 14:51:25
Quote Anchor link
Chris Horeweg op 05/01/2011 14:40:51:
Alles is een bestand Ozzie, denk eens logisch na.. Waarom zet je het niet simpel op een subdomein? Scheelt je een hoop werk en de laadtijd van je website wordt verkort..


Offtopic:
Wordt je laadtijd korter als je al je statische content (images, stylesheets en javascript-bestanden) op een subdomein plaatst?
 
Ozzie PHP

Ozzie PHP

05/01/2011 14:51:33
Quote Anchor link
Chris Horeweg op 05/01/2011 14:40:51:
Alles is een bestand Ozzie, denk eens logisch na

Wat een onzin. www.mijnsite.nl/kantoorartikelen/nietmachines is echt geen bestand hoor.
 
Kevin de Groot

Kevin de Groot

05/01/2011 14:54:00
Quote Anchor link
Ozzie PHP op 05/01/2011 14:51:33:
Chris Horeweg op 05/01/2011 14:40:51:
Alles is een bestand Ozzie, denk eens logisch na

Wat een onzin. www.mijnsite.nl/kantoorartikelen/nietmachines is echt geen bestand hoor.


De bovenstaande URL verwijst toch in principe naar (bijv.): http://www.mijnsite.nl/index.php?pagina=producten&hoofdcategorie=kantoorartikelen&subcategorie=nietmachines Dan wordt dus 'producten.php' aangeroepen en dat is een bestand. Of denk ik nu verkeerd?
Gewijzigd op 05/01/2011 14:54:37 door Kevin de Groot
 
TJVB tvb

TJVB tvb

05/01/2011 14:54:45
Quote Anchor link
Kevin de Groot op 05/01/2011 14:51:25:
Offtopic:
Wordt je laadtijd korter als je al je statische content (images, stylesheets en javascript-bestanden) op een subdomein plaatst?

Als de cookies etc goed instelt worden die niet meegestuurd naar naar het subomein wat data scheelt, dit verschil is maar heel klein.

Browsers beperken het aantal requesten wat tegelijkertijd naar 1 domein gaan. Een subdomein wordt als een nieuw domein gezien waardoor er meer requesten tegelijkertijd kunnen zijn voor je pagina.

Wat info: http://tweakers.net/plan/491/content-afbeeldingen-voortaan-via-ic-punt-tweakimg-punt-net.html
Gewijzigd op 05/01/2011 14:56:32 door TJVB tvb
 
Kevin de Groot

Kevin de Groot

05/01/2011 14:56:56
Quote Anchor link
TJVB tvb op 05/01/2011 14:54:45:
Kevin de Groot op 05/01/2011 14:51:25:
Offtopic:
Wordt je laadtijd korter als je al je statische content (images, stylesheets en javascript-bestanden) op een subdomein plaatst?

Als de cookies etc goed instelt worden die niet meegestuurd naar naar het subomein wat data scheelt, dit verschil is maar heel klein.

Browsers beperken het aantal requesten wat tegelijkertijd naar 1 domein gaan. Een subdomein wordt als een nieuw domein gezien waardoor er meer requesten tegelijkertijd kunnen zijn voor je pagina.


Top! Bedankt voor de uitleg. Als het veel tijd zou schelen zou het een overweging voor me zijn om dat te doen, maar gezien het verschil dus maar klein zou zijn is dit het voor mij niet waard.
 
Ozzie PHP

Ozzie PHP

05/01/2011 14:57:18
Quote Anchor link
Kevin de Groot op 05/01/2011 14:54:00:
De bovenstaande URL verwijst toch in principe naar (bijv.): http://www.mijnsite.nl/index.php?pagina=producten&hoofdcategorie=kantoorartikelen&subcategorie=nietmachines Dan wordt dus 'producten.php' aangeroepen en dat is een bestand. Of denk ik nu verkeerd?

De parameters verwijzen naar een action in een controller. Dat is een bestand wat geinclude wordt en niet wordt aangeroepen via de browser url.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.