[Pliki][COOKIE] Chmod i cookie

0

Witam,
mam takie pytanie, jakie są możliwości ustawienia zabezpeiczeń CHMOD? Chodzi mi o to jak dokładnie działają. Czy ustawienie zabezpieczenia ma wpływ na przeglądanie strony, czy tylko na odwoływanie się do plików/katalogów?

Natomiast moje drugie pytanie jest takie: Jakie ryzyko niesie za sobą to że ktoś zna ścieżkę do folderu z szablonami lub do dokładnego pliku? Czy może coś z tego odczytać lub zmienić?

Chodzi mi o tę stron: www.RomekRechenek.com - jakie jeszcze błędy widzicie?

0
Atverstyt napisał(a)

Witam,
mam takie pytanie, jakie są możliwości ustawienia zabezpeiczeń CHMOD? Chodzi mi o to jak dokładnie działają. Czy ustawienie zabezpieczenia ma wpływ na przeglądanie strony, czy tylko na odwoływanie się do plików/katalogów?

Natomiast moje drugie pytanie jest takie: Jakie ryzyko niesie za sobą to że ktoś zna ścieżkę do folderu z szablonami lub do dokładnego pliku? Czy może coś z tego odczytać lub zmienić?

Chodzi mi o tę stron: www.RomekRechenek.com - jakie jeszcze błędy widzicie?

Ustawienie zabezpieczenia nie wpływa na przeglądanie strony, aczkolwiek zaleca się aby zabezpieczać nimi pliki takie jak: config.php [644]. Ścieżkę do czegokolwiek można łatwo odnaleźć w źródle strony, co nie jest żadnym zagrożeniem jeśli nie masz dostępu do FTP lub jakiegoś skryptu PHP. Wszystko oczywiście da się odczytać oprócz skryptów typu PHP lub CGI bo one parsowane są po stronie serwera, a do usera trafia wyłącznie kod HTML + nagłówki itd. Dodam że znalazłem na tym całym smartyPHP pewną podatność na XSS i/lub dziurę include. Tutaj linki:

http://www.romekrechenek.com/www/index.php?lang[]=M0nked
http://www.romekrechenek.com/www/index.php?lang=../index
http://www.romekrechenek.com/www/index.php?lang[]=M0nked

Nie wiem jaki wymiar (nie)sprawiedliwości można byłoby pokazać wykorzystując ten błąd, jednak sam fakt o błędzie trzeba wziąć do serca :P

0

Widac ze generalnym bledem jest bezposrednie wsadzanie zawartosci zmiennej do skryptu. Zmienne typu np: lang powinny miec ograniczenie do kilku mozliwosci (bo jakie jezyki obslugujesz?) co mozna zdefiniowac w jakiejs tablicy, zas inne zmienne, jesli sa czytane powinny byc sprawdzane co do typu i dlugosci oraz odseparowane znaki specjalne i tagi.

i jeszcze jedno CHMOD MA OGROMNY WPLYW na wyswietlanie strony!!! Jesli pliki maja ustawione uprawnienia zle to nic nie zobaczysz w przegladarce, a otrzymasz blad 403 - forbidden czyli zabroniony dostep. Pliki dostepne dla strony www musza miec uprawnienia do odczytu dla wszystkich czyli 644.

0
  1. Wiem co jest wyświetlane xD
  2. Nie rozumiem tego z tym XSS? Co w tym złego?
  3. Czemu lang ma mieć jakieś ograniczenia?
  4. Proszę powiedzcie mi jak powinienem ustawiać CHMOD'y i trochę opiszcie.
  5. Czy znacie jeszcze jakieś błędy?
0
romek napisał(a)

Widac ze generalnym bledem jest bezposrednie wsadzanie zawartosci zmiennej do skryptu. Zmienne typu np: lang powinny miec ograniczenie do kilku mozliwosci (bo jakie jezyki obslugujesz?) co mozna zdefiniowac w jakiejs tablicy, zas inne zmienne, jesli sa czytane powinny byc sprawdzane co do typu i dlugosci oraz odseparowane znaki specjalne i tagi.

i jeszcze jedno CHMOD MA OGROMNY WPLYW na wyswietlanie strony!!! Jesli pliki maja ustawione uprawnienia zle to nic nie zobaczysz w przegladarce, a otrzymasz blad 403 - forbidden czyli zabroniony dostep. Pliki dostepne dla strony www musza miec uprawnienia do odczytu dla wszystkich czyli 644.

No właśnie. Z tymi CHMOD'ami przesadziłem zdeka bo jak będzie 000 to nie wykona, nie zapisze ani nie odczyta. Zmienną lang powinno się ograniczyć tak:

$_langs[] = 'pl';
$_langs[] = 'en';
if (!in_array($_langs, $_GET['lang'])) {
die('Wybrany jezyk jest nieprawidlowy!');
}

Na zmienne które są wsadzane do include() wystarczy taki kaganiec:

$zmienna = str_replace('.', '', $zmienna);

(Mi pomaga :P)

0

To ograniczenie lang to zrobię (po swojemu by nie było że kopiuję xD). Ale nie rozumiem o co chodzi z tym include(). Rozumiem jak działa ale nie wiem co robisz.

0

Wywalam wszystkie kropki ze zmiennej zamieniając znak kropki na NIC. W ten sposób nie includujesz niczego z innym rozszerzeniem niż chcesz ani nie powrócisz do katalogu wyżej, a wszystko gdzie nie jest umieszczony napis: "płatne" możesz kopiować :P

0

Mówisz że to zmiennych w include() wystarczy "kaganiec". Czyli że możesz zobaczyć moje pliki? Do jakiego stopnia?

0

Plików zobaczyć nie mogę, aczkolwiek można by tą lukę w jakiś ciekawy sposób wykorzystać ale dzisiaj nie mam natchnienia. Mówiąc o kagańcu miałem na myśli ograniczenie do jednego katalogu i rozszerzenia poprzez wykasowanie kropek ze zmiennej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1