Door
Ozzie PHP
op 30-12-2010 16:10
gewijzigd op 06-01-2011 13:17
50.691 views
Hmmm, laat ik de vraag toch maar eens stellen. Ik wil graag een eigen framework / beheersysteem maken. De bedoeling is dat ik als het systeem klaar is heel makkelijk een website kan maken waar meteen al een standaard cms gedeelte in zit.
Ik ben al begonnen met een framework en ik maak daarbij gebruik van Zend Framework, maar nu vraag ik me het volgende af. Ik heb behoorlijk wat PHP kennis en ervaring inmiddels, maar ik heb hier geen opleiding voor gehad. Ik wil het mezelf dan ook altijd zo makkelijk mogelijk maken als ik aan het programmeren ben. Voorbeeld, als ik een databasequery wil uitvoeren dan wil ik niet een hele query in te hoeven typen, maar wil ik simpele functies kunnen gebruiken, bijvoorbeeld: $database->setTable('tabel') en $row = $database->select('naam') etc.
Ook vind ik het handig dat ik in Zend Framework een route makkelijk kan koppelen aan een controller en een actie. Daarnaast gebruik ik de MVC structuur (modules), de Zend_Registry functie om iets op te slaan en gebruik ik de caching functie voor het cachen van gegevens.
Ik gebruik Zend Framework dus voornamelijk voor:
- maken van mooie routes
- routes koppelen aan controller en actie
- MVC structuur (modules)
- Zend_Registry om variabelen op te slaan
- Caching
Voor de rest gebruik in Zend Framework eigenlijk niet. Ik weet dat er heeeel veel mogelijkheden in Zend Framework zitten, maar ik ben niet iemand die dat allemaal wil uitvogelen, en ik wil toch altijd graag mijn eigen code schrijven zodat ik precies weet wat de code doet en hoe deze in elkaar zit (zodat het voor mijzelf logisch is en makkelijk te gebruiken).
Nu vraag ik me 2 dingen af:
1) is het voor mij eigenlijk wel zinvol om Zend Framework te gebruiken aagezien ik er niet heel veel mogelijkheden van benut.
2) zijn de 5 functies waar ik gebruik van maak (makkelijk) ook zelf te maken of is dat heel erg ingewikkeld?
Wat raden jullie aan? Zend Framework blijven gebruiken ook al gebruik ik er maar weinig van? Of toch zelf mijn eigen functies maken en Zend Framework niet meer gebruiken? Ik stel deze vraag ook omdat Zend Framework zo'n 23mb aan serverruimte in beslag neemt.
Oke, maar waarom deze niet: Options All -Indexes (beveiligen tegen het tonen van directories)
Options All? All? Is dat wel zo'n goed idee? En heb je dat allemaal nodig? -Indexes kan handig zijn, maar als je geen bestanden in je webroot hebt, of alleen de publieke bestanden zoals css en js, dan kan het ook geen kwaad als het wel aan staat. +FollowSymLinks toevoegen kan nog nuttig zijn.
En deze? Om te voorkomen dat bestanden (waaronder htaccess) direct worden aangeroepen? RewriteCond %{REQUEST_FILENAME} .(inc|ini|p?ht.*|php.*|txt)$
Betere oplossing: niet in je webroot zetten, zodat ze nooit toegankelijk zijn via http. Dan hoef je toegang ook niet te blokkeren. Ook als je server dan faalt en plots vergeet je htaccess te lezen, of mod_rewrite even niet meer werkt omdat iemand die apache module heeft uitgeschakeld, zijn je bestanden nog veilig.
Wat je nog wel kan toevoegen is Options +FollowSymLinks. Volgens de handleiding is dat noodzakelijk voor mod_rewrite. To enable the rewrite engine in this context, you need to set "RewriteEngine On" and "Options FollowSymLinks" must be enabled..
Pfff, lastig dat htaccess. Ik dacht dat Options All -Indexes betekent dat er nooit een directory kan worden getoond. Dat kan dan toch geen kwaad om dit aan te zetten? Of is het slecht voor de performance of iets dergelijks?
"Betere oplossing: niet in je webroot zetten, zodat ze nooit toegankelijk zijn via http." Helemaal mee eens hoor, maar stel dat iemand mijn framework ooit gebruikt en toch een config file in de webroot zet.... Tuurlijk, dan kun je zeggen dat ie dat niet had moeten doen, maar waarom gewoon niet dichttimmeren via htaccess. Of heeft dit weer andere nadelige gevolgen als ik dat doe?
Die followsymlinks is volgens mij alleen van toepassing als je met <directory> gaat werken. De tekst "in this context" slaat op de zin erboven volgens mij.
Hoe dan ook, ik wil een htaccess bestand dat zoveel mogelijk bescherming biedt. Ik snap niet zo goed waarom iedereen die opties weglaat. Je wil toch juist een soort van bescherming bieden? Zelfs in je webroot? Baadt het niet dan schaadt het niet zou ik dan zeggen. Of wordt je site soms traag van die extra opties?
En die van mark is eigenlijk ook nog te groot vind ik, maar ja iedereen zijn eigen mening he :)
Ben het met je eens dat het beperken van request methoden niet echt in een .htaccess thuis hoort. Wel probeer ik altijd zo veel mogelijk binnen .htaccess te regelen. Denk hierbij aan algemene configuratie en response headers, GZip compressie en caching.
Aan de topicstarter zou ik meegeven dat je gewoon moet beginnen met programmeren en dan kijken waar het schip strandt. Het heeft weinig zin eeuwig door te gaan over een bepaald component (in dit geval .htaccess), in 99% van de gevallen maak je later toch nog wel wat aanpassingen. Succes!
Thanks Mark, ik wil zeker ook verder met de rest... maar aangezien de htaccess toch de basis is waar iedere request binnenkomt wil ik dit goed in orde hebben... maar het lijkt er wel op of iedereen zomaar wat doet (gezien al die verschillende varianten). Ik ben er nog steeds niet uit wat er nu precies in hoort te staan.
Ik wil dat het bestandje ook voor veiligheid zorgt op het moment dat het terecht komt op een server die slecht geconfigureerd is. Het htaccess bestand moet dan voor extra veiligheid zorgen. Dat is wat ik wil.
"Het heeft weinig zin eeuwig door te gaan over een bepaald component (in dit geval .htaccess), in 99% van de gevallen maak je later toch nog wel wat aanpassingen. Succes!" Hier zit zeker wat in, maar ik wil in ieder geval een goede basis hebben snap je?
PS werkt de mail functie niet meer. Heb geen mail ontvangen dat ik een update had...
Ik wil dat het bestandje ook voor veiligheid zorgt op het moment dat het terecht komt op een server die slecht geconfigureerd is. Het htaccess bestand moet dan voor extra veiligheid zorgen. Dat is wat ik wil.
Tja, dan kan je alles wel gaan beveiligen. denk eens aan, magic quotes en nog meer van dat onzin.
Ik houd hem altijd zo simpel mogelijk. Wil de programmeur hem uitbreiden omdat zijn host niet 'betrouwbaar' is dan kan hij dat toch zelf doen?
Hier zit zeker wat in, maar ik wil in ieder geval een goede basis hebben snap je?
Precies zoals je zegt, een basis. Dat is in mijn ogen een niet al te groot maar toch functionele htaccess, en die heb ik je dus gegeven ;)
Maar goed, zoals Mark al zei: "dat je gewoon moet beginnen met programmeren en dan kijken waar het schip strandt".
PS werkt de mail functie niet meer. Heb geen mail ontvangen dat ik een update had...