![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Przeszukałem google i nigdzie nie mogę znaleźć czegoś takiego.
A mianowicie mam oto taki kod php:
Wyświetla on listę plików w katalogu "galeria". I mam takie pytanie jak zrobić aby w polu <input type=text name=chmod> po wpisaniu np: 0666 plik dostawał takie chmody ![]() ![]() Ten post edytował moto0095 28.03.2010, 16:17:59 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
ja wiem jak użyć chmod() tylko nie wiem jak jakoś to połączyć
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Albo przekazujesz dane za pomocą formularza metodą post, albo za pomocą linka metodą get. Nie możesz mieszać tego i tego, tak jak masz:
Jeżeli chcesz wykorzystać formularz, to będziesz musiał skorzystać z input-a o typie button i możesz jako jego wartość (value) przekazać nazwę pliku, którą masz w zmiennej $file. Później tylko z tablicy $_POST odczytujesz nazwę pliku i prawa, no i używasz funkcji chmod. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Polecałbym raczej użyć formularza i wysłać dane metodą post. Użycie metody get jest niebezpieczne, bo potencjalny użytkownik mógłby zmienić prawa dostępu do innych plików wykorzystując adres w przeglądarce.
Ten post edytował mortus 28.03.2010, 16:50:07 |
|
|
![]() ![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi nie wychodzi. Zrobiłem takie coś ale nic się nie dzieje:
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Polecałbym raczej użyć formularza i wysłać dane metodą post. Użycie metody get jest niebezpieczne, bo potencjalny użytkownik mógłby zmienić prawa dostępu do innych plików wykorzystując adres w przeglądarce. Nie widzę problemu też zmienić prawa dostępu do innych plików przez formularz. W każdym razie, moto0095 chyba niema zamiaru tego udostępniać dla użytkownika. Więc proste zabezpieczenie powinno załatwić sprawę np:
moto0095 co to jest w 10 linijce? Ten post edytował Rysh 28.03.2010, 17:32:21 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Nie widzę problemu też zmienić prawa dostępu do innych plików przez formularz. Nazwę pliku w formularzu przesyłamy w polu typu hidden i ma ona jedno, określone value. W polu typu text podajemy natomiast prawa, jakie chcemy nadać. Więc w jaki sposób zmienisz prawa dostępu do innego pliku?Tylko co będzie, jeśli moto zechce któremuś plikowi nadać uprawnienia inne niż 0666? Ma zrobić tyle odnośników ile uprawnień? |
|
|
![]() ![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie mam zamiaru udostępniać tego wszystkim.
Ale nadal mi coś nie działa. ![]() właściwie to chodzi mi właśnie tylko o nadawanie chmod 0666 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
No to jeśli chodzi o nadawanie zawsze chmod 0666, to po co je w ogóle przekazywać?
I plik chmod.php Założenie jest takie, że plik chmod.php i katalog galeria są w tym samym katalogu. Jeżeli nie, to trzeba odpowiednią ścieżkę podać. Oczywiście trzeba jeszcze zabezpieczyć kod w pliku chmod.php, przed nieautoryzowanym wykonaniem (np. przy pomocy tablicy $_SESSION, jak pisał Rysh). Ten post edytował mortus 28.03.2010, 19:01:21 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Nazwę pliku w formularzu przesyłamy w polu typu hidden i ma ona jedno, określone value. W polu typu text podajemy natomiast prawa, jakie chcemy nadać. Więc w jaki sposób zmienisz prawa dostępu do innego pliku? Tylko co będzie, jeśli moto zechce któremuś plikowi nadać uprawnienia inne niż 0666? Ma zrobić tyle odnośników ile uprawnień? Mały test, zrób sobie pliczek:
Odpal przeglądarkę i sprawdź co zwraca. A następnie wykonaj sobie taki trick, jeśli posiadasz Google Chrome wejdź PPM -> Zbadaj zawartość i zmodyfikuj tam kod html, ponownie wprowadź jakieś dane i sprawdź co tym razem zwraca input hidden ![]() ![]() Jeśli nie posiadasz Google Chrome o to screen: http://wstaw.org/w/2V2/ Nic trudnego prawda? ![]() @moto0095:
Plik chmod.php:
Ten post edytował Rysh 28.03.2010, 18:35:48 -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Mały test, zrób sobie pliczek:
Odpal przeglądarkę i sprawdź co zwraca. A następnie wykonaj sobie taki trick, jeśli posiadasz Google Chrome wejdź PPM -> Zbadaj zawartość i zmodyfikuj tam kod html, ponownie wprowadź jakieś dane i sprawdź co tym razem zwraca input hidden ![]() ![]() Jeśli nie posiadasz Google Chrome o to screen: http://wstaw.org/w/2V2/ Nic trudnego prawda? ![]() Wniosek z tego taki, że zawsze trzeba zabezpieczać skrypt przed nieautoryzowanym dostępem. @moto0095:
Plik chmod.php:
Mój kod z pierwszego listingu wyświetlał nazwę pliku, a obok link dalej, służący do zmiany uprawnień do pliku o tej nazwie. Opcjonalnie zamiast dalej mogłeś wpisać Zmień prawa, ale to mało istotne. Twój plik chmod.php jest zupełnie bez sensu. Dlaczego? Bo przecież w $_SESSION nie musi być indexu 'admin', tylko może być inny. W $_GET przekazujesz tylko nazwę pliku, a plik jest w podkatalogu galeria. Poza tym nazwę pliku przekazujesz w $_GET['plik'], a nie $_GET['file']. Mój warunek z issetem jest mało istotny, natomiast to co Ty napisałeś w ogóle nie zadziała. Przyglądnij się uważnie. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
To prawda $_GET['plik'] zamist $_GET['file'] - mój błąd.
Kod się oczywiście nie wykona jeśli w $_SESSION['admin'] nie będzie wartości true. Czyli jeśli nie jesteś adminem - proste. Co do pierwszej części chciałem Ci udowodnić że tak samo łatwo zmienić $_POST jak i $_GET ![]() -------------------- |
|
|
![]() ![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki .
Ale taka mała uwaga w kodzie jaki podał mortus jest taki mały błą No to jeśli chodzi o nadawanie zawsze chmod 0666, to po co je w ogóle przekazywać?
W wierszu 5 powinno być ![]() nie niestety nie działają oba skrypty pokazuje się: Warning: chmod() [function.chmod]: Operation not permitted in /home/a8963311/public_html/file/chmod.php on line 3 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
To może jeszcze raz. Struktura katalogów:
Kod projekt\ Niech plik index.php wyświetla listę plików, a obok odnośnik do zmiany praw dostępu. Zatem treść pliku index.php:galeria\ photo001.jpg photo002.jpg ... index.php chmod.php Plik chmod.php natomiast powinien wyglądać tak: Przetestowałem i działa. @moto0095 Ostrzeżenie mówi, że próbowałeś wykonać niedozwoloną operację. Możliwe, że wskazałeś na niewłaściwy plik albo pliku nie ma w tym katalogu. |
|
|
![]() ![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety cały czs to samo
![]() Ten post edytował moto0095 29.03.2010, 22:42:06 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:44 |