![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z zagnieżdżeniem warunków. Wydaje mi się, że wszystko jest dobrze lecz nie działa jak trzeba.
Nie działa mi część z $logowanieok = 1, pomimo niespełnienia warunku pierwszego kod nie jest wykonywany.
Powód edycji: [piotrooo89]: przenoszę do przedszkola + tagi
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Nie widzę połączenia z bazą, nie masz czy nie wkleiłeś?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Połączenie mam, nie wrzucałem tutaj ponieważ działa na pewno. Inne warunki działają poprawnie.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 5 Dołączył: 26.01.2011 Ostrzeżenie: (40%) ![]() ![]() |
Straszny ten kod. Raz ze prosisz sie sqlinjection, dwa ze hasla masz plaintextowe, trzy ze jesli to nie Twoj serwer to wystarczy wlaczyc logowanie zapytan i wszystkie hasla sa jak na dloni. A 2 zapytania to juz super pomysl - zeby sie zalogowac user musi podac poprawny login *i* haslo. Po co chcesz mowic dokladnie ze login zly czy haslo zle? nie wyszlo logowanie - "Dane uzyte do logowania nie sa poprawne. Wpisz poprawne dane.". Koniec komunikatu. No chyba ze koniecznie chcesz ulatwic komus odkrycie loginow do istniejacych w systemie kont.
Ten post edytował NEO.pl 25.03.2011, 16:35:47 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
OK, wykonałem jak napisałeś, czyli udane lub nieudane logowanie. Cod o SQLi to mógłbyś podpowiedzieć jak zabezpieczyć taki panel logowania?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 5 Dołączył: 26.01.2011 Ostrzeżenie: (40%) ![]() ![]() |
SQL Injection:
http://en.wikipedia.org/wiki/SQL_injection http://pl2.php.net/mysql_real_escape_string Co do zapytania i hasla -> jesli juz musisz trzymac plain textowo (99,99% nie musisz) to np. wyjmij haslo z bazy dla danego usera i porownaj sobie w kodzie. Poza tym robienie "SELECT *" jest srednio sensowne jesli interesuje Cie jedynie informacja czy dany rekord istnieje czy nie. Albo wyciagaj to co faktycznie potrzebujesz (np. "SELECT `id`, `haslo` ....) albo tylko zliczaj "SELECT COUNT(id) AS count..." (tylko wtedy mysql_num_rows() nie mozesz uzyc tak jak masz wyzej. Ten post edytował NEO.pl 25.03.2011, 16:49:57 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wskazówki.
Przerobiony kod wygląda następująco:
Czy należało by coś jeszcze do niego dodać aby był bezpieczny? Ten post edytował pitu120 25.03.2011, 17:41:13 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 5 Dołączył: 26.01.2011 Ostrzeżenie: (40%) ![]() ![]() |
Tak. Poprawna obsluge bledow mysql_query zamiast nieszczesnego @ (bo to i tak zle uzyte masz). A, jeszcze najpierw robisz zapytanie a potem sprawdzasz czy masz do niego "komponenty"? herbate tez najpierw nalewasz a potem wyjmujesz szklanke z szafki? (IMG:style_emoticons/default/smile.gif)
Ten post edytował NEO.pl 25.03.2011, 17:53:33 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podpowiedzi i porady.
OK zmieniłem kolejność 1. sprawdzam pola 2. jeżeli nie są puste wykonuje zapytanie itp. Czy coś jeszcze można zmienić, dodać?
Ten post edytował pitu120 25.03.2011, 20:10:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:03 |