widoczne has

Wszystko Off Topic
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

jaSS pisze:
jang pisze:Chyba się nie zrozumieliśmy. w ten sposób echo file_get_contents('http://www.domena.com/config.php')]

Ewidentnie sie nie zrozumieliśmy, ja mówiłem o przypadku kiedy "strona" znajduje sie na współdzielonym serwerze bez chroot/jail/vserver dla każdej domeny.

ponton mówil o dostępie przez shell, nawet jeżeli zablokuje taki dostęp żeby inni userzy na serwerze nie mogli wyświetlić tego pliku to user www-data musi mieć do niego dostęp a każdy inny user może odpalić skrypt php który tam sięgnie.

Kiedyś (dawno temu zanim zacząłem robić po prostu vservery) bawiłem sie z opcjami 'open basedir'/'safe_mode' + ograniczenie dostępu tylko dla użytkownika www-data do katalogów.
Naprawdę jest taka możliwość aby któryś admin tak "spaprał" serwer aby właściciele kont na jego serwerze mogli sobie nawzajem podglądać pliki ? (Pytam jako ktoś kto na serwrach się nie zna). Jest jakiś sposób abym mógł sobie sprawdzić czy admin serwera na którym mam konto wszystko dobrze ustawił ? Ten Twój wcześniejszy przykład raczej nie zadziała bo musiałbym znać konkretne położenie danego pliku znajdującego się na innym koncie (chyba że założę sobie dwa konta :) ).

Pozdrawiam
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post autor: jaSS »

jang pisze:Naprawdę jest taka możliwość aby któryś admin tak "spaprał" serwer aby właściciele kont na jego serwerze mogli sobie nawzajem podglądać pliki ?
Nie wiem czy nazwałbym to "spapraniem" ale jest to domyślna konfiguracja zazwyczaj.
jang pisze:Ten Twój wcześniejszy przykład raczej nie zadziała bo musiałbym znać konkretne położenie danego pliku znajdującego się na innym koncie
Z tym to nie ma raczej problemu wystarczy ze wiesz ze takie konto istniej i mniej więcej wiesz jak wygląda struktura na serwerze a potem dodajesz tylko index.php albo coś takiego.
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

jaSS pisze:Nie wiem czy nazwałbym to "spapraniem" ale jest to domyślna konfiguracja zazwyczaj.
Ja to tak nazwałem dlatego, że w takim razie po co wogóle w PHP wymyślać cuda pt.

Kod: Zaznacz cały

if ( ! defined( 'DIR_LIB' ) ) exit( 'No direct script access allowed' )] skoro i tak cała masa ludzi może mi grzebać w moich plikach.
Czy w takim wypadku [b]chmod 700[/b] na katalog w którym znajdują się pliki które mają być dostępne tylko dla skryptów jest jakimś zabezpieczeniem ? Ewentualnie możesz podać jakieś inne rozwiązanie (oprócz szyfrowania).

Pozdrowienia
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post autor: jaSS »

jang pisze:Czy w takim wypadku chmod 700 na katalog w którym znajdują się pliki które mają być dostępne tylko dla skryptów jest jakimś zabezpieczeniem?
Nie bo skoro apache ma do niego dostęp (a musi mieć bo inaczej go nie wykona) to każdy user może uruchomić skrypt php ktory sie wykona z uprawnieniami usera apache.
jang pisze:Ewentualnie możesz podać jakieś inne rozwiązanie (oprócz szyfrowania).
Znaleźć serwer gdzie konta są separowane od siebie, lub skrypty wykonywane są z uprawnieniami usera a nie apache/www-data
mlyczek
Junior Member
Posty: 979
Rejestracja: 02 sierpnia 2006, 19:17

Post autor: mlyczek »

Temat bardzo mnie zainteresował. Mam sobie stronkę, dla której napisałem sobie panel administratora (pozwala dodawa treści na stronę), do którego dostęp mam tylko ja, w przyszłości ograniczona grupa ludzi (2-3). Hasło do tego panelu trzymam w osobnym pliku php i korzysta z niego skrypt, który loguje mnie do panelu. Jednak na tym serwerze nie ma bazy danych, więc muszę te treści zapisywać do pliku. Na początku miałem z tym problem, bo skrypt wywalał mi, że nie może zapisywać do pliku, który ja mu utworzyłem. Gdy go usunołem wtedy skrypt utworzył sobie ten plik i zobaczyłem, że jego właścicielem jest user, którego nazwa składa się z samych cyfr. Za każdym razem tych samych. Aby skrypt mógł w tym katalogu zapisywać musiałem zmienić jego prawa na 777, tak, aby inni (ta ostatnia 7) mogli zapisywać w nim, bo katalog tworzony był przez ftp, a php nie korzysta z tego samego usera. Moje pytanie jest takie: czy jest to bezpieczne - czy ktoś nie będzie mógł mi np. zmienić tego pliku lub skasować cały folder?
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

jaSS pisze: Znaleźć serwer gdzie konta są separowane od siebie, lub skrypty wykonywane są z uprawnieniami usera a nie apache/www-data
Czy jako zwykły użytkownik jestem w stanie sprawdzić te ustawienia (nie grzebiąc komuś w jego plikach) czy tylko pozostaje pytać admina ?
ponton
Beginner
Posty: 406
Rejestracja: 24 stycznia 2007, 01:40
Lokalizacja: Kalisz/Wroc³aw

Post autor: ponton »

Znaleźć serwer gdzie konta są separowane od siebie, lub skrypty wykonywane są z uprawnieniami usera a nie apache/www-data
Akurat mam możliwość, aby admin to zmienił. W jaki sposób zrobić, aby skrypty wykonywały się z prawami usera?
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

[quote="mlyczek"][/quote]Jeśli chodzi o PHP to moim zdaniem powinno wystarczyć

Kod: Zaznacz cały

w pliku index.php
define('INDEX', true)]
a w tym pliku o którym piszesz[code]<?php if ( ! defined( 'INDEX' ) ) exit( 'No direct script access allowed' );
czyli ta część skryptu która zapisuje danego do pliku mussi dopisywać również to co powyżej. Natomiast jeśli chodzi o shella to sam jestem ciekaw ?

Pozdrawiam

[ Dodano: 2007-07-10, 17:35 ]
[quote="ponton"][quote]Znaleźć serwer gdzie konta są separowane od siebie, lub skrypty wykonywane są z uprawnieniami usera a nie apache/www-data[/quote] Akurat mam możliwość, aby admin to zmienił. W jaki sposób zrobić, aby skrypty wykonywały się z prawami usera?[/quote]
W /etc/apache2/apache2.conf jest taki wpis:

Kod: Zaznacz cały

User www-data
Group www-data
i to być może właśnie tam ? ale z konkretami zaczekałbym na kogoś w sprawach serwera mądrzejszego niż ja.

[ Dodano: 2007-07-10, 18:50 ]
XAMPP dla Linuxa :

Kod: Zaznacz cały

<IfModule !mpm_netware_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>
http://httpd.apache.org/docs/2.0/mod/mp ... .html#user
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post autor: jaSS »

mlyczek pisze:czy jest to bezpieczne


nie
mlyczek pisze:czy ktoś nie będzie mógł mi np. zmienić tego pliku lub skasować cały folder?
będzie mógł

Oczywiście o ile dany serwer nie jest jakoś dodatkowo zabezpieczony. Wszystko zależy od ustawień serwera.
Frost
Posty: 12
Rejestracja: 23 lutego 2007, 12:10

Post autor: Frost »

Wydaje mi się, że skrypt jest wykonywany z prawami właściciela pliku w jakim dany skrypt się znajduje. I jeśli ów właściciel ma prawa na folder...

Kod: Zaznacz cały

/usr/_nazwa/public_html
...to nie zaincluduje nic znajdującego się poza tym folderem. Konto ftp rządzi się własnymi prawami, także źródła cudzego skryptu również nie ujrzysz.
ODPOWIEDZ