Archief - PHP: Veiligheid baseren op REQUEST_URI ?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sneax

Legacy Member
Ik was van plan om een access control dinges te maken via request_uri

Daarmee bedoel ik - ik kijk welke file request_uri is, en kijk dan in de database of de huidig ingelogde user deze pagina mag bekijken of niet. Dat request_uri daarom niet altijd een filename is maar dat er ook GET queries kunnen aanhangen etc... dat doet er niet toe - de vraag is:
Is het veilig om daarop de security te baseren? Is het makkelijk om request_uri in iets anders te forceren door de bezoeker? Kan de bezoeker request_uri forceren in index.php maar eigenlijk tóch bv. admin.php opvragen? Als dit niet veilig is - zijn er dan andere (veilige) manieren om te kijken wat de opgevraagde pagina is?

BertG

Legacy Member
het valt te bezien hoe je onthoud welke user er ingelogd is.

Als je bijvoorbeeld de user identificeert via een cooky waar zijn nummer of zijn naam in staat, dan kan deze makkelijk je systeem verschalken door wat te gokken.

Als je daarentegen zijn username loginID en passwoord (al dan niet encrypted) in een cookie plaatst is het al veel moeilijker om "iemand anders" te gaan spelen.

Dan moet er natuurlijk in de code nog wat beveiliging aangebracht worden.
Zo is het handig om niet de bestandsnaam in de request te plaatsn, maar eerder een verwijzing.
Als een gebruiker de echte filename kent, kan deze op zoek gaan naar die file en deze dan op zich te openen.

Dat brengt mij nog bij een laatste punt: becherming op file vlak.
Het is best bestanden die niet "solo" mogen geopend worden (dus via include or require wel), te beveiligen hiertegen.
Dat kan op 2 manieren. Plaats de betreffende bestanden op een lager of gelijk nivea dan de public_html map, hierdor kan het bestand niet berijkt worden van buitenaf.
Of je include dit stukje code in die file:
PHP:
$legal = explode ("/", $REQUEST_URI);
$islegal = explode ("/", $_SERVER['PHP_SELF']);
$nrislegal =count ($islegal); $nrislegal = $nrislegal-1;
$nrlegal = count ($legal); $nrlegal = $nrlegal-1;
if ($islegal[$nrislegal]==$legal[$nrlegal]) {
//doe hier iets wat je wil bv doorzenden naar ander pagina
exit; //of die
}

sneax

Legacy Member
Ok allemaal goed en wel, mss was de vraagstelling niet duidelijk, hier heel kort gezegd:

Kan een gebruiker bv deze pagina bezoeken:
/base/admin/index.php
en er tegelijk toch voor zorgen dat ik als $_SERVER['REQUEST_URI']; dit krijg in het script bv:
/base/index.php

Meer moet ik niet weten, toch bedankt voor de hulp.

BertG

Legacy Member
euh nee...
$_SERVER['REQUEST_URI'] is de waarde waarmme de pagina wordt opgevraagd, dus deze kan nooit anders zijn...

ja kan wel
/base/index.php door de gebruiker laten opvragen en in die pagina dan
require ("admin/index.php");
doen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan