Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SQL injection i inne ataki
eska chojnice
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 16.09.2010

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


Czy jeśli zablokuję znaki
CODE
'/\:*?"<>|;

Mogę być na ogół pewny że nie grozi mi SQL injection ?

Jakie są jeszcze typy ataków poprzez SQL i na czym polegają, dobrze jeszczy by było jak by ktoś powiedział jak się przed nim zabezpieczyć. jeśli nie będzie to tylko odsyłka do angielskiej strony będzie pomógł (IMG:style_emoticons/default/wink.gif)

Ten post edytował eska chojnice 5.04.2012, 19:24:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
droslaw
post
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 33
Dołączył: 10.05.2011
Skąd: Krak

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


Blokowanie jakichkolwiek znaków to nie jest dobry pomysł. Czasami będzie trzeba je przechowywać w bazie. Zamiast tego dane powinno się escapować. Dla MySQL`a odpowiednią funkcją do tego celu jest mysql_real_escape_string(). Ta funkcja wstawi "\" przed niebezpiecznymi znakami i nie będą już groźne. Nie zapominij wstawiać wszystkich danych do zapytania w cudzysłowach. Jeśli dasz cudzysłowy, to kiedy użytkownik wpisze instrukcje np. w formularzu zostaną potraktowane jak dane.

Tak może to wyglądać:
  1. // Odbieramy dane z formularza logowania.
  2. $login = mysql_real_escape_string($POST['login']);
  3. $password = mysql_real_escape_string($POST['password']);
  4.  
  5. $query = "SELECT * FROM `users` WHERE `user_name` = '".$login."' AND `user_password` = PASSWORD('".$password."')";
  6. // w $query masz teraz bezpieczne zapytanie.

Możesz też skorzystać z PDO i jego bindowania para
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 22:41