Hey guys,

In Plesk heb je de optie om "FollowSymLinks" uit te schakelen.

FollowSymLinks houdt een veiligheidsrisico in, maar ik meen dat je het nodig hebt voor rewriting (mooie URLS). Dus dat je in plaats van www.mijnsite.nl/product.php?id=123 www.mijnsite.nl/product/123 kunt doen. Maar heb je daar per se die FollowSymLinks voor nodig? Of kan het ook zonder? Weet iemand dat?
FollowSymlinks heb je niet nodig voor mod_rewrite, alleen voor het volgen van symlinks. De twee houden op geen enkele manier verband met elkaar.
Na even gezocht te hebben in de documentatie:
Recentere versies van Apache vereisen FollowSymlinks, of op zijn minst SymlinksIfOwnerMatch, als extra veiligheid. Waarom dit zo gedaan is, geen idee. Ik heb het net getest en de documentatie klopt op dit punt.
Aha ... dus als ik je goed begrijp moet ik FollowSymLinks dus NIET uitschakelen?
Als je mod_rewrite wil gebruiken niet, of je moet hem opnemen in AllowOverride, zodat je het in een individueel geval kan inschakelen. En nogmaals: er is ook SymlinksIfOwnerMatch, de veiligere variant van FollowSymlinks.
Wat houdt dat precies in ... SymlinksIfOwnerMatch? Ik snap sowieso niet echt wat FollowSymLinks doet ... op welke manier wordt dat gebruikt bij het rewriten?

Dus als we in plaats van "www.mijnsite.nl/product.php?id=123" werken met "www.mijnsite.nl/product/123" wat doet dat FollowSymLinks dan precies? En op welke manier is SymlinksIfOwnerMatch veiliger?
Dan doet FollowSymlinks zelf niets, er is alleen een eis dat het ingeschakeld is, en de foutmelding die je anders krijgt geeft dit ook duidelijk aan. Waarschijnlijk zodat je wat meer granulariteit hebt om te bepalen welke gebruikers wel en niet mogen rewriten.
FollowSymlinks doet wat de naam aangeeft: het staat toe dat Apache symlinks volgt. SymlinksIfOwnerMatch zorgt ervoor dat dat alleen gebeurt wanneer het doel (bestand of directory) dezelfde eigenaar heeft als de bron.
Even voor mijn begrip (zoals je inmiddels weet ben ik nog niet heel bekwaam op dit vlak) ... ik kan dus FollowSymlinks uitschakelen, maar in plaats daarvan SymlinksIfOwnerMatch inschakelen. Correct?

>> dat dat alleen gebeurt wanneer het doel (bestand of directory) dezelfde eigenaar heeft als de bron

Dit snap ik nog niet. Iemand doet dus een request naar mijn website: www.mijnsite.nl/product/123

Wie is dan die eigenaar waar jij het over hebt?

The server will only follow symbolic links for which the target
file or directory is owned by the same user id as the link.

Een simpel voorbeeld:
Jij hebt /home/ozzie/public_html, en je legt vanuit daar een symlink naar /etc.
Als je nu naar www.example.com/etc gaat krijg je met FollowSymlinks de inhoud van /etc te zien, met SymlinksIfOwnerMatch niet, omdat /etc eigendom is van root, en de link gemaakt is door ozzie. Dus met SymlinksIfOwnerMatch kun je alleen symlinks laten volgen die aan de eis voldoen dat het doel eigendom is van dezelfde user als de link zelf.
Oké ... ik snap denk ik wat je bedoelt, maar nu vraag ik me wat anders af ... de manier waarop ik met rewrite werk is iets anders (denk ik tenminste).

Ik leid namelijk ieder request dat geen file is naar index.php. Vandaaruit ga ik dan de juiste pagina renderen. Ik gebruikte in het verleden dit: https://www.adayinthelifeof.nl/2012/01/21/apaches-fallbackresource-your-new-htaccess-command/ Ik zie dat ik dan mod-rewrite niet nodig heb en wellicht ook niet FollowSymLinks?

Reageren