Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Logowanie i SQL Injection
gawellus
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.07.2009

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


Witam
Czy szyfrowanie hasła metodą sha1 pozwala uniknąć ataku sha1 ?
Mam skrypt logowania, zapytanie do bazy:

  1. <?php
  2. $wynik = $lacz->query("select * from user
  3.                         where login='$nazwa_uz'
  4.                         and haslo = sha1('$haslo')");
  5. ?>


Próbowałem wpisać z formularz jako hasło
  1. <?php
  2. ' OR '1'='1
  3. ?>
ale nie dało efektu.

Drugie pytanie: czy opcja w php.ini - magic_quotes_gpc = On jest wystarczającym zabezpieczeniem przed sql injection?
Go to the top of the page
+Quote Post
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


1. Hasło nic nie zrobi, ale musi być kodowane po stronie PHP, a nie SQL (tak jak to robisz teraz). Poza tym ktoś może wpisać złe znaki w loginie i tak będzie działać SQLi

2. W większości tak, aczkolwiek nie do końca i jest niewygodne. Odsyłam do Google w sprawie wyjaśnien.
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie szyfrowanie a hashowanie hasła. Jak kolega już wspomniał rób to przed wysłaniem danych do bazy. W dodatku uczysz się złych nawyków jeżeli chodzi o używanie " i '.
Co do loginu, spokojnie można tam pisać np.:

user' /*
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




1: o tym, że ktoś wklei tasiemca kilkukilobajtowego i go przesyła do bazy marnotrawiąc przepustowość, nie wspomnę. [;
Go to the top of the page
+Quote Post
Asmox
post
Post #5





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Gawellus opcję php.ini - magic_quotes_gpc = On masz włączoną u siebie na serwerze, czy na serwerze, gdzie zamierzasz hostować stronę ? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
gawellus
post
Post #6





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.07.2009

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


dobra, moment, bo nie wszystko czaje z tego co mi mówicie

1. "W dodatku uczysz się złych nawyków jeżeli chodzi o używanie " i '." - zupełnie nie wiem o co chodzi

2. user' /* - wpisałem w formularz logowania i wywala, że logowania niemożliwe (to chyba dobrze, nie?)

3. "o tym, że ktoś wklei tasiemca kilkukilobajtowego i go przesyła do bazy marnotrawiąc przepustowość, nie wspomnę. [; " - nie wklei, bo zanim dane są wysyłane do zapytania jest sprawdzana długość hasła

4. magic_quotes_gpc = On - mam włączone u siebie na localhost, nie jestem do końca przekonany, czy działa, bo get_magic_quotes_gpc() zwraca wartość true, ale dane z dziwnymi znakami wyświetla bez jakichkolwiek slashy :/

jeśli chodzi o to logowanie i sql inj. poproszę jakieś łopatologiczne rozwiązanie tego problemu, bo wszystko co czytałem samo sobie zaprzecza, np. jedni piszą, że trzeba dodawać addslashes przed dodawaniem rekordów, inni piszą, że ta metoda jest przestarzała, sam już nie wiem jak mam się zabezpieczyć :/

czytałem też ten artykuł: link
ale nigdzie nie widzę definicji funkcji "get_from_database()"

Ten post edytował gawellus 23.07.2009, 15:10:32
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 28.08.2025 - 22:30