![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Prosiłbym o ocenę mojego rozwiązania pod kątem bezpieczeństwa. Szybciej i przyjemniej było mi napisać coś swojego niż godzinami odnajdywać się w czyimś kodzie (brak wcześnijszego kontaktu z PHP). Mam nadzieję, że ma to prawo działać - czyli bronić dostępu do części serwisu. Dodam, że to moje pierwsze pisanie w PHP więc proszę o zrozumienie jeśli stosowałem nie najkrótsze rozwiązania. Mam nadzieję, że wszystko jest jasne. Czekam na opinie. Pozdrawiam.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
KIlka dość poważnych uchybień:
1. restricted.php, linia 11 masz tam teraz if(!isset($otwarcia)), a nie wiadomo skąd wzięła się zmienna $otwarcia. Zapewne w ustawieniach PHP (plik php.ini) masz zmienną register_globals ustawioną na ON. Jest to bardzo zła praktyka i nie zalecana ze względów bezpieczeństwa. Dlaczego? Na tym forum wiele tematów pod hasłem "register_lobals" znajdziesz. 2. secur.php linia 6 include("passwords.txt"); - tu baardzo duża luka... co się stanie jeśli w przeglądarce wpiszesz: http://<domena>/passwords.txt? Założę się, że w tym przypadku na ekranie pojawią się wszystkie hasła Twoich użytkowników. Druga sprawa jest taka, że te hasła nie są zahaszowane (poczytaj trochę o md5 i sha1), więc nawet jeśli komuś udałoby się ukraść te hasła z pliku passwords.txt to i tak musiałby się trochę namęczyć aby te hasła odzyskać. Powtarzam jest to bardzo duża luka więc tu na pewno musisz ją poprawić To tyle wstępem, jeszcze trochę musisz się pouczyć, ale popieram własną inicjatywę przy pisaniu kodu. Pozdrawiam Ten post edytował Cezar708 21.01.2008, 09:40:19 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
1. restricted.php, linia 11 masz tam teraz if(!isset($otwarcia)), a nie wiadomo skąd wzięła się zmienna $otwarcia. Ona powstaje właśnie w tym miejscu - jeśli nie istniała wcześniej - czyli przy pierwszej odsłonie tego pliku. Co prawda napisałem, że decyduje ona o tym czy trzeba się zalogować, jednak nawet jeśli nie trzeba ($otwarcia >0) to funkcja sprawdz() i tak jest każdorazowo odpalana (secur.php, ln 50). Więc chyba nie da się tego wykorzystać jako luka w bezpieczeństwie. 2. secur.php linia 6 include("passwords.txt"); - tu baardzo duża luka... co się stanie jeśli w przeglądarce wpiszesz: http://<domena>/passwords.txt? Założę się, że w tym przypadku na ekranie pojawią się wszystkie hasła Twoich użytkowników. Racja, ale... Skąd byś wiedział jak się nazywa ten plik? Powyższą nazwę można jeszcze zagadywać w ciemno, ale oczywiście nazwałem go inaczej (tu wpisałem tak z 2 powodów: aby kod był czytelniejszy oraz jakby ktoś wyniuchał gdzie ten kod jest wykorzystany :] ). Plik może być też umieszczony w podkatalogu. Z kolei gdyby ktoś mógł listować katalog na serwerze to nie musi szukać haseł tylko wejść wprost w pliki do których powyższe hasła dostępu bronią. ![]() BTW Da się przeskoczyć brak praw do listowania katalogu (na na założeniu, że nie, opiera się mój skrypt)? pozdrawiam Swierszcz |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (30%) ![]() ![]() |
Podaj mi adres strony gdzie takie coś wykorzystałeś a coś ci pokarze ;P (wyslij na pw)
Ten post edytował Szupien 24.01.2008, 16:31:24 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 01:07 |