06. juli 2002 - 12:01Der er
36 kommentarer og 1 løsning
php safemode vil ikke gå i "on"
Hejsa all Jeg har en apache kørende med php & MySQL. Min php har p.t sat safemode = off, meen da det ikke er serligt sikkert vil jeg gerne have den slået til. Jeg gik ind i php.ini og satte den til on og genstartede, meeen når jeg så udfører komandoen phpinfo(); skriver den at den stadig er på off, why det ?? og hvordan skal man ellers gøre ???
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.
lyder mærkeligt? Er du sikker på at det er den rigtige php.ini fil du har rettet? (jeg ved godt at det måske lyder dumt, men man ved jo aldrig :)
Iøvrigt er det måske også en idé at sætte exec_dir, basedir og doc_root når du nu roder med sikkerhed :) Hvis du sætter disse, kan du så se det med phpinfo(); ??? Eller i det hele taget andre rettelser i php.info ?
jeg retter i den fil der ligger i /usr/local/apache/conf/php.ini det skulle vist gerne være den rigtige. hvad skal exec_dir, basedir og doc_root stilles til og hvad gør de ??
hmm fatter det bare ikke....! jeg har nu sat safe_mode=On, doc_root = /usr/local/apache usr_dir=/home/www og intet af det er sat til i følge php.ini og nej det er den eneste php.ini jeg har der ligger godt nok en inde i en test mappe i de udpakkede filer som var i installationen meen den er tom såå det kan ikke være den :-))
hmm ok fandt grunden til at det ikke virkede var at php ledte efter sin inifil i /usr/local/lib og der var bare slet ingen ini fil...! nu har jeg kopieret filen dertil og safemode står i on :-)) meen så kommer næste spørgsmål....! var det så ikke meningen at ompalte script ikke skulle virke ??? altså det fra artiklen du linkede til ??? for det virker nemlig stadig selvom php_safe_node er sat til on ??
typisk fejl at det er den forkerte php.ini - det var derfor jeg mente at der evt. lå 2 forskellige at flød :-)
"var det så ikke meningen at ompalte script ikke skulle virke ??? altså det fra artiklen du linkede til ???for det virker nemlig stadig selvom php_safe_node er sat til on ?? "
Open_basedir skal sættes
jeg kan ikke lige huske hvad det er for script du omtaler og jeg kan ikke komme ind på den side lige nu. men hvis det er et script der "browser" rundt på serveren, så vil det virke hvis
1: Open_basedir ikke er sat 2: Scriptet er ejet af samme ejer som f.eks. ejer dine konfigfiler.
Så alt i alt så drejer det sig om at sikre dine brugere ikke har mulighed for at execute shell kommandoer med mindre det er i den sti der er angivet i php.ini - selv benytter jeg /root fordi det i forvejen er bedst sikret mappe.
Derefter skal du søge for at alle fil operationer udenfor base_dir er ulovlige. f.eks. /var/www/ - afhøngig af din konfiguration
Sidst skal du når du tester huske at dit script skal være ejet af en "bruger" og ikke root Derefter skal du sørge for at dine brugere der ejer scripts ikke er
open_basedir skal sættes til den sti som er "roden" af dine httpdocs - det er jo forskelligt for hver maskine.. på min er det f.eks.
/var/www/
Men det kan være hvor som helst.. det betyder bare at fil operationer er ulovlige udenfor denne sti.. det vil sige at hvis du har et script der læser indholdet af en mappe, så kan scriptet ikke gå "højere" op end ovenstående sti.
ok ok det er oxo done nu, min er /home/www meen det hjælper stadig ikke på scriptet...! jeg kan stadig logge alle de andre mapper der er rundt omkring på serveren, hvilket jo ikke burde være muligt
har fjernet den igen den kan jo bruges til at finde pass til ALT nej jeg får sku ikke nogen fejl når jeg skriver ../ jeg kan finde ALT der ligger inden for /home/www mappen
Ja! Det er jo det der er hele humlen. Rent terror script :-)
*uden* basedir: Du kan se ALT på hele serveren *med* basedir: Du kan se ALT på serveren indenfor f.eks. /home/www
Forstår du hvad basedir bruges til nu?
Du kan ikke undgå at de brugere og scripts der indenfor base_dir kan se hvilke filer og mapper de andre har. Derimod kan du undgå at de kan se *selve* filerne ved at have safe_mode=on og køre dem som forskellige brugere.
"safe_mode skulle gøre sådan at man ikke kan se filer førn den aktuelle mappe og det kan man da stadig "....
??? jeg tror du har misforstået. Safe_mode gør at bruger 1 ikke kan se filer der tilhører bruger 2 - men du kan ikke forhindre at bruger 1 kan se hvilker filer bruger 2 har.
= man kan stort set altid se hvilke filer de andre har (altså liste dem) men med safe=*off* kan man sågar også se selve koden
men det virker i alle tilfælde hos dig. Kig evt også på google. søg efter +php +security så får du en masse gode link.. der beskriver exec_ base_dir og safe_mode
okey :-)) det var egentlig skide smart :-)) det har jeg herved benyttet mig at i stedet :-)) jeg hoster nemlig en site som er temmelig ked af at skulle have safe_mode på on for der ville komme bøvl med koderne i safemode som nu ikke behøver blive rettet...!
det som nok bare er mit største problem, er at alle filer på selve webserveren har samme bruger og gruppe, og kan ikke rigtig se hvorn det skal laves om ??? alle filer er i bruger proftpd
ja det er netop det :-)) altså senere kan jeg godt gøre det aut da alt upload / redigering skal ske via web interfase, og der kan jeg sagtens lave en chown, meen der er problemet så at hvis jeg fek.s laver en chown test:test filnavn får jeg bare den melding at user test ikke eksisterer, og så kommer vi jo lige vidt
den der afdelign med sendmail, det er slet ikke noget jeg har rettet, det har php sku selv sat under installation. og jo det virker skam finno :-)) du kan eventuelt oprette en profil på min forum http://www.bacce.dk/forum den sender nemlig en email ud efter end registrering. meen før jeg fil flyttet min php ini til det rigtige sted var den skrevet ud til sendmail patchen og det virkede også :-))
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.