webForumDet fria alternativet

SAFE MODE och move_uploaded_file

PHPur PHP

4 svar · 279 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Frågan#1

När man med samma script först skapar en mapp och sedan tankar upp en fil till denna mapp med SAFE MODE påslaget, får man felmeddelande. SAFE MODE vill att uid:t (ägaren) av mappen ska vara samma som uid:t till själva scriptet. I och med att scriptet är upptankat via FTP och därför ägs av mig men mappen är skapad av scriptet och därmed ägs av Apache säger SAFE MODE ifrån för att det är olika ägare.

Mina frågor är följande,
1. Går det att komma runt detta på något sätt utan att behöva stänga av SAFE MODE (allra helst åtgärder som inte måste göras på själva servern, utan som alltså kan göras i koden)?
2. Är det riskabelt att stänga av SAFE MODE? Hur mycket sämre blir säkerheten?

Tackar på förhand!

Medlem sedan aug. 20002 975 inlägg
#2

1.
Du kan använda dig av FTP-funktionerna för att skapa katalogen, under förutsättning du har stöd för dessa funktioner på din server. Ett exempel: http://www.phpportalen.net/viewtopic.php?p=204968#204968

2.
Safemode är främst till för att olika användare på en server inte ska komma åt varandras filer.
Är du ensam på servern har inte safemode så stor betydelse.
För att stänga av safemode behöver du vara administratör på servern.

Medlem sedan maj 2001797 inlägg
#3

Tack för svaret! Jag har stöd för FTP-funktionerna och testade att köra din kod. Mappen skapades men jag fick ett felmeddelande:

Warning: ftp_mkdir(): Invalid number of arguments in *blablabla* on line 25

Och rad 25 är denna:

24: // create directory
25:		if(ftp_mkdir($connection,$newDir))
26: 		{
27: 			ftp_site($connection, "CHMOD 777 $newDir")
28: 			or die("FTP SITE CMD failed.");
29:			return $newDir;
30: 		}
31: 		else
32: 		{
33: 			return false;
34: 		}
35: 		ftp_close($connection); // close connection

Som sagt mappen hann skapas i alla fall, men vad tror du kan vara fel? Jag måste väl inte definiera '$newdir'?

Medlem sedan juni 20006 031 inlägg
#4

$newDir är ju den nya mappen som du skapar så du måste ju definiera vad mappen ska heta.

Medlem sedan maj 2001797 inlägg
#5

Ja, ok. Fast den definieras senare, på rad 46:

40: // Sökväg till katalogen
41: // Utgångspunkten är den nivå i filsystemet du loggar in på med din FTP
42: $path = '/var/www/html/bilder';
43: 
44: // Skapa mappar
45: FtpMkdir($path, $mapp);
46: FtpMkdir($path.'/'.$mapp, 'thumbz');

Men hur som helst löste det sig. Funktionen FtpMkdir() anropas två ggr av nån anledning. Det var bara att ta bort det första anropet. Tack i alla fall! :)

132 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)