![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 5 Dołączył: 30.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Witam chciałbym się zapytać czy takie zapytania jak podam poniżej są dobrze napisane, żeby uniemożliwić ewentualny atak.
1) Logowanie (wyciąłem stąd wszystkie niepotrzebne rzeczy), przed wysłaniem formularza hasło jest dodatkowo hashowane.
W sesji m.i. ustanawiam zmienną login i id ($_SESSION['login'] oczywiście (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ), które później wykorzystuje do innych zapytań. 2) Używam AJAX'a i jedynym sposobem na razie który znalazłem na przekazanie sesji to:
Nie wiem na ile jest to bezpieczne. Jedyne co wiem to to, że ciasteczko nie jest zapisywane do pliku i zdaję się że jest przechowywane w pamięci (jednak nie wiem jak to wszystko działa i nie wiem na ile można temu ufać). 3)
To jest zapytania z pliku AJAX'owego więc jeśli da się podszyć pod tamte ciasteczko to także dowolna osoba będzie mogła komuś zmienić hasło (?) Tutaj tak jak wcześniej hasło jest hashowane dodatkowo przed wysłaniem. Do wszystkiego dodam że użytkownik ma unikalny login (ale to raczej rzecz oczywista). I jak już wcześniej przeczytałem, a również i zauważyłem hasło może składać się z dowolnych znaków, ponieważ i tak jest hashowane. To by było na tyle z moich pytań. Z góry dziękuję za odpowiedź i krytykę. Ten post edytował UNK 17.10.2006, 09:27:41 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja przed przekazaniem loginu sprawdzam czy jest poprawny (wyrazenie reguralne eliminujace niedozwolone znaki) wtedy przekazuje do zapytania.
Haslo koduje na dwa razy. Jak wiadomo md5 mozna zlamac metoda BruteForce ale jesli zrobimy np $haslo = md5($password) . md5(sha1($password) . crc32($password)); raczej ciezko to recznie odkodowac. I w takiej postaci mozna bezpiecznie trzymac w Cookies (jesli wlaczamy opcje autologin). Mozna zrobic opcje ze po 3 nie udanych probach logowania blokujemy dostep z tego IP + Cookies na godzine. Po 10 probach blokujemy na 24h itd. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 5 Dołączył: 30.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
O loginie w sumie wpadłem dzisiaj rano, a raczej przypomniało mi się że zapomniałem dodać sprawdzania poprawności (tak jak mówiłeś wyrażenia regularne).
Co do hasła nie wpadłem na taki pomysł aby szyfrowanie zrobić kilka razy, bardziej mi pasuje mój sposób (kilka razy szyfrowanie przed i po wysłaniu (tutaj tylko przykład) i użytkownik będzie jedynie wiedział jak jest hashowane hasło przed wysłaniem (js) ale na serwerze już nie wie i będzie mógł mieć problem, może że trafi na (nie pamiętam jak się to dokładnie nazywało) hash colision. O tym nie zapomniałem, konto po 3 nieudanych próbach blokowane jest na 1h potem jest odblokowane i ma kolejne próby (nie robiłem już na cały dzień (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) chciałem na początku ale stwierdziłem że mi się nie chce (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) Do tego wszystkiego na początek każdy będzie miał dostęp do swojego konta tylko ze swojego ip (bo to jest tak że każdy w sumie już swoje 'konto' ma w którym jest wpisane ip jego komputera i ono będzie zawsze takie jakie będzie miał na komputerze, nie ma możliwości aby te ip się różniły) jednak użytkownik będzie mógł dodać sobie ip na które zezwoli lub zabroni dostępu. Zrobiłem również logowanie wszelkich zapytań, więc jeśli jakiś użytkownik będzie chciał coś pisać z adresu albo przez fake form to się o tym dowiem przeglądając logi (tak mam tego świadomość że przy ~1000 userach przeglądanie takich logów będzie udręką (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A co z ludzmi uzywajacymi neostrady? Praktycznie nie maja mozliwosci dodania innych IP (musieli by dodacwszystkie). Ajak sie rozlacza przed dodaniem IPkow to mogila.
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Pragne zauwazyc, ze topic byl o Sql Injection, a walenie IP, ciastek, podwojnych hashy, nie ma zadnego związku z problemem. Nie robmy juz wiekszego smietnika. POsty wydzielam do odzielnego watku
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Co do hashu nie zrozumiales mnie.
Zobacz że praktycznie nie ma znaczenia ile razy wykonasz szyfrowanie typu:
To i tak dostajesz ciag 32 znakowy. Natomiast jesli zrobisz :
Dostaniesz ciag 64 znakowy. Ciag 64 znakowy jest trudniejszy do zlamania niz 32 znakowy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:21 |