[PHP] open_basedir restriction in effect

Pagina: 1
Acties:
  • 284 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Aakab
  • Registratie: November 2001
  • Laatst online: 17-09 14:35
Ik heb een nieuwe domainnaam voor projectmanagement doeleinden opgezet (webhosting bij externe bedrijf). Hierop heb een subdomain aangemaakt (subdomein.domeinnaam.com). Ik heb het gratis tooltje Webcollab erop geinstalleerd.

Een aantal dagen lang ging dit goed en kon ik met de web interface gewoon bestanden erop plaatsen. Echter geeft hij sinds vandaag een foutmelding. In mijn Plesk logs

code:
1
[Wed Mar 01 00:20:51 2006] [error] [client 82.171.99.72] PHP Warning: move_uploaded_file(): open_basedir restriction in effect. File(/var/www/vhosts/xxxxx.com/subdomains/iso/httpdocs/files/filebase/bla.jpg) is not within the allowed path(s): (/var/www/vhosts/xxxxxxx.com/subdomains/iso/httpdocs:/tmp) in /home/vhosts/xxxxxxxx.com/subdomains/iso/httpdocs/files/file_submit.php on line 174, referer: http://iso.xxxxxxx.com/files.php?x=0&taskid=2&action=upload


Nu heb ik dus al gezocht en het gaat er dus om dat ik opeens sindsg vandaag geen rechten meer heb om bestanden via een web interface op de server te zetten...De code waarin de foutmelding van webcollab staat is de volgende:
code:
1
2
3
4
5
6
7
 //copy it
      if( ! move_uploaded_file( $_FILES['userfile']['tmp_name'], FILE_BASE.'/'.$fileid.'__'.$filename ) ) {
        db_query('DELETE FROM '.PRE.'files WHERE id='.$fileid );
        unlink($_FILES['userfile']['tmp_name'] );
        db_rollback();
        error('File submit', 'Internal error: The file cannot be moved to filebase directory, deleting upload' );
      }


Kan ik niet gewoon hier de pad aanpassen ofzo zodat het werkt, zonder tussenkomst van webhosting bedrijf?


//edit

overigens ben ik best wel een php noob(wel asp kenner dus weet wel wat van scripting taaltjes..)
Ik denk zelf dat het ligt aan de subdomain ofzo?

[ Voor 9% gewijzigd door Aakab op 01-03-2006 00:31 ]


Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 20-09 13:58

sebastius

Laten we lekker link gaan doen

Dan heeft je hoster de PHP instellingen aangepast zodat dat niet meer mag. Met 'open basedir restriction' wordt voorkomen dat je in andere mappen dan de map waar je php bestandje in staat gaat rommelen. Het schijnt de boel veiliger te maken, iets waar ik het niet helemaal mee eens ben, maar goed. Ja ik heb hetzelfde probleem.

[ Voor 64% gewijzigd door sebastius op 01-03-2006 01:37 ]


Acties:
  • 0 Henk 'm!

  • Aakab
  • Registratie: November 2001
  • Laatst online: 17-09 14:35
Hm ik had de hoster gemailed en die gaf aan dat ze nix hebben gewijzigd :(

pfff rotzooi

Acties:
  • 0 Henk 'm!

  • Aakab
  • Registratie: November 2001
  • Laatst online: 17-09 14:35
Kan ik doormiddel van de .htaccess file ervoor zorgen dat dit werkt

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

sebastius schreef op woensdag 01 maart 2006 @ 01:36:
Dan heeft je hoster de PHP instellingen aangepast zodat dat niet meer mag. Met 'open basedir restriction' wordt voorkomen dat je in andere mappen dan de map waar je php bestandje in staat gaat rommelen. Het schijnt de boel veiliger te maken, iets waar ik het niet helemaal mee eens ben, maar goed. Ja ik heb hetzelfde probleem.
de open_basedir setting zorgt ervoor dat je enkel in de directories (+subdirs) dir aangegeven zijn
lees/schrijf rechten hebt, iets wat de veiligheid _juist_ ten goede komt op "public"/shared servers ;)
Aakab schreef op woensdag 01 maart 2006 @ 14:29:
Kan ik doormiddel van de .htaccess file ervoor zorgen dat dit werkt
nee, gelukkig niet, alleen via php.ini

overigens wel vaag, die directory ziet eruit alsof het een subdirectory is van dat allowed-path, toevallig geen symlinks gebruikt?

[ Voor 9% gewijzigd door Erkens op 01-03-2006 14:37 ]


Acties:
  • 0 Henk 'm!

  • m-m
  • Registratie: Augustus 2001
  • Niet online

m-m

Vaak kan je open_basedir gewoon gewoon omzeilen door een chdir() commando te gebruiken. Probeer dat eens. Heeft het voor mij iig meerdere malen weten op te lossen. Tamelijk slecht dat dat in PHP kan overigens.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

m-m schreef op woensdag 01 maart 2006 @ 14:48:
Vaak kan je open_basedir gewoon gewoon omzeilen door een chdir() commando te gebruiken. Probeer dat eens. Heeft het voor mij iig meerdere malen weten op te lossen. Tamelijk slecht dat dat in PHP kan overigens.
dat kan alleen als '.' in de allowed paths staat :)
The special value . indicates that the working directory of the script will be used as the base-directory. This is, however, a little dangerous as the working directory of the script can easily be changed with chdir().

Acties:
  • 0 Henk 'm!

  • m-m
  • Registratie: Augustus 2001
  • Niet online

m-m

ja, klopt, maar das wel vaak t geval.

Acties:
  • 0 Henk 'm!

  • Aakab
  • Registratie: November 2001
  • Laatst online: 17-09 14:35
m-m schreef op woensdag 01 maart 2006 @ 14:48:
Vaak kan je open_basedir gewoon gewoon omzeilen door een chdir() commando te gebruiken. Probeer dat eens. Heeft het voor mij iig meerdere malen weten op te lossen. Tamelijk slecht dat dat in PHP kan overigens.
Sorry zoals ik al aangaf ben ik niet echt htuis hierin..

Waar zou ik die commando moeten geven?
Kan het via FTP?

Acties:
  • 0 Henk 'm!

  • Aakab
  • Registratie: November 2001
  • Laatst online: 17-09 14:35
Erkens schreef op woensdag 01 maart 2006 @ 14:35:
[...]

de open_basedir setting zorgt ervoor dat je enkel in de directories (+subdirs) dir aangegeven zijn
lees/schrijf rechten hebt, iets wat de veiligheid _juist_ ten goede komt op "public"/shared servers ;)


[...]

nee, gelukkig niet, alleen via php.ini

overigens wel vaag, die directory ziet eruit alsof het een subdirectory is van dat allowed-path, toevallig geen symlinks gebruikt?
Uhm wat zijn symlinks?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

m-m schreef op woensdag 01 maart 2006 @ 15:18:
ja, klopt, maar das wel vaak t geval.
als een sysadmin dat gebruikt met deze setting dan weet die dus niet wat die doet en heeft het geen nut. Normaal gesproken (en wat dus vaak wel het geval is) staat daar je eigen webroot zodat je daarbuiten niks kan doen.
Aakab schreef op woensdag 01 maart 2006 @ 15:40:
[...]


Sorry zoals ik al aangaf ben ik niet echt htuis hierin..

Waar zou ik die commando moeten geven?
Kan het via FTP?
chdir() is ook gewoon een php functie, maar zoals te zien in de error message staat de huidige directory, de punt, niet in de open_basedir setting en heeft het geen nut om van directory te changen :)
google kapot?
maar waarschijnlijk gebruik je dus geen symbolic links, maar daarom kan de hoster wel iets fout gedaan hebben. Heb je ze de exacte melding laten zien?

File(/var/www/vhosts/xxxxx.com/subdomains/iso/httpdocs/files/filebase/bla.jpg) is not within the allowed path(s): (/var/www/vhosts/xxxxxxx.com/subdomains/iso/httpdocs:/tmp)

want als ik het zo zie, valt die file gewoon binnen de allowed path.
Pagina: 1