Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Katalogi
MILICJA
post
Post #1





Grupa:
Postów: 31
Pomógł: 3
Dołączył: 25.08.2006

Ostrzeżenie: (0%)
-----


Mam zamiar napisac sobie prosta przegladarke katalogow. Nie chce wypisywac wszystkich jako drzewa. ma to wygladac tak ze wyswietla sie katalog glowny (root) i w nim znajduja sie inne podkatalogi. Przejscie do podkatalogow nastepuje przez przekazanie GET np. ?katalog=root/podkatalog

Pytanie 1. Jak zabezpieczyc skrypt, aby uzytkownik ktory wpisze sobie w adresie ?katalog=../innykatalog
Chce, aby nie dalo sie przegladac katalogu polozonego nizej niz root.

Pytanie 2. Jak bezpiecznie przekazac sciezki do skryptu. Czy rozwiazanie ?katalog=... jest dobre ? czy istnieja jakies inne lepsze sposoby, rozwiazania.

Pozdrawiam


--------------------
Pomogłem ? Nie zapomnij kliknąć na "Pomógł" ;D
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Linki przekazuj jako podkatalog, podkatalog/sraka i dopiero w skrypcie doklejaj początek ścieżki (czyli root). A przed wyjściem katalog wyżej zabezpieczysz się zwykłym str_replace ../ na cokolwiek (np. nic tongue.gif).
Go to the top of the page
+Quote Post
zimi
post
Post #3





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

Ostrzeżenie: (0%)
-----


ja bym skorzystał z funkcji realpath i jej rezultatowi kazałbym się zaczynać od jakiejś ścieżki którą bym wyznaczył jako katalog główny do "zabaw" dla tego skryptu

wydaje mi się że to pozwala na większą swobodę no i de facto zrzuca odpowiedzialność za nadzorowanie ścieżki na kogoś innego...

generalnie sama idea osobiście mi się nie podoba, tak samo jak nie podobało by mi się generowania kodu zapytań SQL, PHP, shell'a, przy czym chodzi mi o $_GET w charakterze kodu właściwego a nie argumentów

no ale każdy skrypt ma jakieś swoje potrzeby

ten da sie zrobić bezpiecznie i zrobiłbym to z realpath...
Go to the top of the page
+Quote Post
dadexix
post
Post #4





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 7.07.2008, 20:02:40 ) *
A przed wyjściem katalog wyżej zabezpieczysz się zwykłym str_replace ../ na cokolwiek (np. nic tongue.gif).

No a jeśli chce zrobic przycisk "do góry"? najlepiej tak jak to działa w wielu klientach ftp(np. filezilla) łatwiej mu będzie dać katalog/sub/sub/../ niż odejmować ostatni sub za pomocą str reklace:)
Cytat
ten da sie zrobić bezpiecznie i zrobiłbym to z realpath...

zgadzam się:)
  1. <?php
  2. if(strpos(realpath($_GET['path']), realpath($dir)) === false){
  3. echo "błąd";
  4. }
  5. ?>

Taki przykład użycia, jak dobrze myśle(godzina 3:30), w przypadku tego każde wyjście poza $dir sprawi że ukaże się "błąd":)


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:35