September 13, 2002
Jag har ett litet php-script som loggar besökare och deras ip-nummer på min hemsida. Det skrivs till en fil och då har jag lagt rw-rättigheter på denna. Men nu till frågan, eftersom det är skrivrättigheter så kan någon skriva nånting till filen och hur ska detta isåfall gå till? Med skriva menar jag att lägga till någon rad med "passlig" text som då syns på min hemsida.
November 25, 2002
hur ditt script ser ut... Om en besökar på något sätt kan manipulera med variabeln som innehåller hans ip, innan det skrivs ner i din fil så är det ju möjligt.. Eller om du kanske har flera annvändare på din server, räcker ju med att du har gett någon ett ftp konto med web/php möjligheter, så kan ju han skriva ett skript som skriver ner något roligt i din fil.... Men det antar jag att du har tänkt på...
Annars, säg att du har ett skript som gör detta:
if (!isset $var) $var = $REMOTE_ADDR
skriv_till_fil($var)
Inte för att jag vet varför du skulle ha en koll om $var är tomt, men säg att du har så.. Då kan en besökare ladda "http://din.adress/index.php?var=blahablaha"..
Och eftersom $var då innehåller något så läggs inte det nya värdet från $REMOTE_ADDR in, utan "blahablaha" kommer att skrivas till filen istället...
September 13, 2002
Omformar min fråga:
Mitt problem:
Ett php-script ska kunna lagra data (IP och datum t.ex.), eller en gästbok gjord med php ska ju även den lagra resultatet i en fil då en besökare skriver i den. Eller vilken fil som helst för den delen som kräver skrivrättigheter för en uppgift på webben. Bakgrunden är denna:
Hemsidan ligger på mitt hemområde på skolan, det är en unix-maskin och till samma maskin har förstås även alla andra elever och lärare tillgång (men med andra användarnamn naturligtvis). Detta betyder att lägger jag rättigheterna på dessa filer som jag vill ska uppdateras och därmed skrivas till med t.ex. chmod 666 ( -rw-rw-rw- ) så fungerar det, MEN vem som helst av alla andra användare på skolan kan logga in och t.ex. skriva emacs ~mitt_user/www/filen_ifråga och editera precis som de vill! För jag har ju både läs och skrivrättigheter! Så hur i hela fridens namn ska jag lösa detta, för såhär går det ju inte att ha det. Nu säger ni "hur ska användarna veta namnet på filen för det är php och syns inte i web-browsern". enkelt : cat ~mitt_user/www/index.php.
Så hur gör jag så att endast ägaren till "besöket" (http-sessionen eller vad man ska kalla det) får skriva till filen?
Det går ju överhuvudtaget inte att lägga något annat än read-rättigheter för andra ( chmod x44 ) för så fort jag lägger skrivrättigheter så kan ju vem som helst editera filen.
November 25, 2002
Ehm, ja, då kan det ju vara svårt.... Du kan ju kanske ändra ägare på filen till www, httpd eller vad nu webservern har för annvändare, då kan ju ingen editera den rakt upp och ner iallafall... Dock kan dom ju bara göra ett eget php script som ändrar i din fil... (lite jobbigare för dem iallafall)...
Tror inte att det går att göra någonting åt det, som systemet ser ut idag... tyvärr..
1 Guest(s)