01. oktober 2007 - 20:25Der er
39 kommentarer og 1 løsning
Problemer både med chmod og unlink
Godaften.
Jeg kan ikke få min chmod eller unlink(); funktion til at virke. Der sker intet med filerne, når jeg kigger på FTP'en. Filerne ligger på Surftown, ved ikke om der er nogle der har erfaringer med specielle server opsætninger der eller lignende?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Har du kigget på privilegierne for det bibliotek, hvor det hele foregår? Du kan ikke få lov til at lave emere med filerne end bibliotetet selvc tillader.
Det gør desværre ingen forskel. Om jeg sætter CHMOD til 777 på "hovedmappen" og endda også filen jeg kører chmod(); i, har den stadig samme problem. Intet sker.
Jeg kan se at min unlink(); virker trods alt, hvis jeg manualt stiller CHMOD. Så er det er kun chmod(); der er problemer med.
Ja - f.eks. tillader den i princippet at man uploader en fil med noget kode i og gør det eksekverbar. Dette kan potentielt udnyttes af en hacker til at overtage et website.
chown() bruges til at ændre ejeren (change owner) af en fil. Hvis den var enablet kunne du i princippet uploade en fil i dit eget navn og som ændre den til at være ejet af root-brugeren (system administratoren). Dvs. du kunne snige kode ind som så ville se ude som den var en del af systemet.
Han skriver man man resette filerne's rettigheder i PHP, han kan bare ikke huske hvad funktionen hedder. Men jeg ved nu heller ikke lige hvordan det skulle gøres.
Men det er jo ikke godt, hvordan kan jeg så løse det problem? Ifølge dem er chmod(); enabled, men det virker bare ikke. Om jeg prøver på en .php eller .txt fil gør ingen forskel, om jeg sletter dem og uploader dem igen, så nope.. Nada.
Okay nu ved jeg slet ikke om det er muligt at ændre root folderen's rettigheder hos Surftown, men er der nogen speciel rettighed man bør give den? 755 eller noget?
Lav et script som opretter en lille fil (samme sted hvor scriptet køre), og så efterfølgende ændre privilegier på den. Prøbv så at gå på via FTP og tjek privilegierne.
Umiddelbart så vidt jeg kan se, bruges disse funktioner kun til at læse, skrive og åbne en fil fx.. Synes ikke jeg kan se noget omkring en som opretter dem?
Umiddelbart kan jeg stadig ikke få det til at fungere.
Jeg skriver således;
<?php $filename = 'test.txt'; $somecontent = "Add this to the file\n";
// In our example we're opening $filename in append mode. // The file pointer is at the bottom of the file hence // that's where $somecontent will go when we fwrite() it. if (!$handle = fopen($filename, 'X')) { echo "Cannot open file ($filename)"; exit; }
// Write $somecontent to our opened file. if (fwrite($handle, $somecontent) === FALSE) { echo "Cannot write to file ($filename)"; exit; }
echo "Success, wrote ($somecontent) to file ($filename)";
fclose($handle);
?>
Men den udskriver bare "Cannot open file (text.txt) .... Og filen bliver ikke oprettet.
Hmm har snakket med en mere server 'minded' mand fra Surftown, og han fortæller faktisk er det er deres serveropsætning som gør chmod(); ikke kan anvendes. Han skriver at de har safe-mode sat til on, og dermed man kan ikke bruge chmod(); på filer med et andet uid, hvilket betyder at man kun kan bruge funktionen på filer ownet af httpd ... F. eks. filer uploaded igennem et PHP script.
Satans.. Så er der vidst ikke så meget at gøre mere, udover at acceptere jeg ikke kan lave et fuld-automatisk system?
Hvis de har lukket af for at man kan bruge chmod(), så er der ikke noget alternativ du kan bruge til at omgå den beskyttelse.
Ikke at jeg vil anbefale det, men du kan opså uploade PHP kode og lægge det i en database. Derefter kan du bruge eval() til at afvikle den. Dette ville stort set svare til at du kunne lægge PHP-filer op og afvikle dem.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.