Autor Zpráva
Libor
Profil
U svých souborů a adresářů na serveru php si můžu změnit přístupová práva pro zapisování do souborů přes speciální rozhraní. Jestli jsem tomu, ale dobře porozuměl tak jakmile pro skupinu uživatelů Ostatní (others) dám možnost všech přístupových práv může tam zapisovat kdokoli. Existuje nějaká možnost v php jak říct serveru, že jsem Uživatel (user) aby jsem nemusel povolovat práva na zapisování pro ostatní?
Peca
Profil
Čemu vadí, když se povolí zápis pro "ostatní"? Stejně to bez loginu a hesla není možné.
Libor
Profil
U mě to asi možné je. Zapisuji do souboru přes normálbní stránku php, pomocí fwrite do souboru zapíšu co potřebuji a nikde ve skriptu ani jinde na stránce login ani heslo nemám. Z toho usuziji, že to může udělat kdokoli. Nebo to tak není?
PaD
Profil *
A jak by jsi to chtěl dělat? Pokud se na stránky, které zapisují do souboru nepřihlásíš, tak i kdyby jsi nakrásně čachroval s uživatelema, tak čachrovat budou všichni, kteří zadají to správné URL (které asi předpokládáš nikdo krom tebe nezná). Pokud login není tvůj kamarád, tak si alespoň ošetri, že se data neukládají do PHP interpretovatelných souborů (třeba přepsáním nějakého tvého php nebo include souboru). To co jsi popsal je taková malá (pro někoho i dostatečná) díra do systému, protože když se takto ptáš, pravděpodobně jsi na něco drobného a nepodstatného zapoměl.

A to "oters" neznamená všichni ostatní, ale uživatelé, kteří nejsou ani vlastníkem, ani ve skupině, ve které ten soubor je.

PaD
llook
Profil
Pokud to chápu, dělá ti problém, že kdokoli z ostatních uživatelů hostingu může udělat fopen() na kterýkoli tvůj soubor a přepsat ho? To na sdíleném hostingu obvykle řeší safe_mode...
rabbit
Profil
Pánové Libore a PaDe, jestli jsem Vás dobře pochopil, vypadá to, že Vám poněkud uniká rozdíl mezi uživateli definovanými v operačním systému serveru a uživateli definovanými v php aplikaci. V php aplikaci je na Vás, co v ní máte naprogramováno. Jaké uživatele nadefinovány a co jim dovolíte.
PHP aplikace však normálně ukládá do (a pracuje s) filesystému serveru pod jedním uživatelem (pod tím, pod kterým běží web server). Uživatelé php aplikace nemají s uživateli OS serveru vůbec nic společného.
PaD
Profil *
Pokud php aplikace nemá login, tak asi nemá ani definované uživatele. Jelikož se Libor ptal na přístupová práva k souboru, tak jsem odpověděl na ta práva. Pokud by se ptal na přihlašování uživatelů přes PHP a práci v PHP aplikaci, tak bych asi odpověděl na to.

Pokud budou blbě nastavená práva k adresáři a nebo souborům do kterých chce uživatel přes PHP zapisovat, tak k tomu mu nepomůžou žádní uživatelé definovaní v PHP (kteří IMHO neexistují, protže se nikde ve svojí aplikaci Libor neloguje).

A navíc přihlašování do PHP aplikace může zařizovat třeba i web server, ale to je mimo původní rozsah otázky.

Takže:
pokud chceš omezit zapisování do předem definovaných souborů/adresářů pouze na PHP, podívej se pod jakým uživatelm běží webový server. Pokud má vlastní skupinu, tak to je jen dobře.

Urči si, kam všude cheš mít přítup pomocí PHP, u těch adresářů/soborů změň uživatele na toveje_jméno:skupina _pod_kterou_běží_webserver.

Nastavením práv pro soubor pro usera a group nastavíš práva pro tebe a všechny, kteří se vysktují ve stejné skupině. Doporučuji nastavt others na 0.

Pokud tě stále trápí, že kdokoliv, kdo se dstane na stránku, ze které zapisuješ do php, musíš si definovat uživatele a ošetřit jiným způsobem, např. pomocí uživatelů definovaných v PHP či webovým serverem.

Pokud jsem špatně pochopil utázku, tak se omlouvám, ale speciální rozhraní je nejsíše web frontend k ftp účtu, protože nikdo by nejsíše u uživatelů v PHP aplikaci neimplementoval ugo model z unixu, když by to nepoužíval dále při nastavování práv u fyzickžch soubor na disku.

PaD
Libor
Profil
Možná jsem špatně definoval o co mi jde. Jsem laik a některé souvislosti mi unikají. Mam soubor "priklad.php" ve kterém je skript, který zapisuje data z formulaře do jiného souboru "zapis.txt " Když jsem soubory přes ftp nahrál na server tak mi nešlo do souboru zapisovat. Po uprávě práv ve skupině ostatní zapisování fungovalo. Domnívám se, že když to takto nastavím tak pak může do souboru zapisovat každý i třeba z jíné stránky. A já jsem chtěl aby do souboru "zapis.txt" šlo zapisovat pouze ze souboru "priklad.php" .
Akorát mi možná nedošlo, že tím že jsem ty soubory nahrál přes ftp tak ty soubory jsou vlastně v jakésy uzavřené skupině a není možné do nich zapisovat od jinud.
Uplně moc moudrej z toho nejsem ale za všechny odpovědi děkuji.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0