Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] SQL injection
bastek8989
post 17.10.2006, 16:53:30
Post #1





Grupa: Zarejestrowani
Postów: 205
Pomógł: 1
Dołączył: 11.09.2006

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


Witam

Mam pytanie do doswiadczonych programistow php, znacie jakies sprawdzone sposoby na uchronienie sie przed atakami sql injection? Jakie sa najczesciej popelniane bledy za ktore potem mozemy slono zaplacic i stracic swoje dane w bazie?

pozdrawiam


--------------------
Web-Anatomy.com - tworzenie serwisów internetowych oraz stron www z okolic Bielska-Białej. Zapraszam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Luciano
post 17.10.2006, 17:18:03
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 1
Dołączył: 26.07.2006
Skąd: Londyn

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


Blad jest od zawsze ten sam i to bez wzgledu czy to php czy c czy inny jezyk.
Mianowicie najwieksze zlo pochodzi od uzytkownika tak wiec kazda wartosc
na ktora moze miec wplyw, czyli pochodzi od niego.. i nie mowie tu tylko o tak
oczywistych sprawach jak zmienne z GET, POST ale rowniez ciasteczek i wszystkiego
innego co przy odrobinie checi mozna ustawic samodzielnie MUSI BYC SPRAWDZONE.

Czy wartosc OCZEKIWANA jest wartoscia WPROWADZONA. Czy &id= strony to liczba
czy moze zapytanie SQLa, czy includowany plik z &file= to faktycznie plik znajdujacy sie
w okreslonym z gory katalogu, bez %00, http://, ../ i tego typu ciagow w nazwie.

Najlepiej ustalic jedno miejsce z ktorego bedziemy pobierac wszystko od uzytkownika.
Jakas warstwa posredniczaca - bardzo latwo napisac taka klase.
Z liczbami nie ma wiekszego klopotu, zzazwyczaj wystarczy rzutowanie $id = (int) $_GET['id'].
Warto sprawdzic jeszcze logike np. czy > 0 itd ale to juz takie grozne nie jest. W przypadku stringow
warto uzywac mysql_real_escape, testowac pod wzgledem niebezpiecznych sekwencji ktore mogly by
zaszkodzic z perspektywy skrypty.

ps. dobrym nawykiem IMHO w zapytaniach SQLa jest stosowanie " " do liczb. Czasem spotykam kod
gdzie programista wyszedl z zalozenia, ze skoro poruwnuje liczbe w zapytaniu np. SELECT * FROM tabela
WHERE id = $zmienna nie musi pisac WHERE id = "$zmienna". Jest to prawda, zapytanie bedzie dzialac ale
ryzyko jest takie, ze jesli nie sprawdza czy liczba faktycznie jest liczba pomimo zastepowania " na rzecz \"
wciaz jest narazony poniewaz hax04 nie musi uciekac z " " poniewaz ich tam wcale nie ma smile.gif poprostu wykonuje
zastrzyk z wlasnego kodu wprost w serce aplikacji biggrin.gif

Ogolnie mowiac - nie wierzyc uzytkownikowi bo to najwieksze zlo i dno biggrin.gif

Ten post edytował Luciano 17.10.2006, 17:22:44


--------------------
Go to the top of the page
+Quote Post
bastek8989
post 17.10.2006, 17:28:44
Post #3





Grupa: Zarejestrowani
Postów: 205
Pomógł: 1
Dołączył: 11.09.2006

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


podsumowywujac = nieuzywac where "$zmienna"

i najlepiej get i post poddac filtracji
oto moj skrypcik filtrujacy:
  1. <?php
  2. if (isset($_POST['addnazwa'])) {
  3.  $addnazwa = $_POST['addnazwa'];
  4.  $addnazwa = trim(strip_tags($addnazwa));
  5.  $addnazwa = mysql_escape_string($addnazwa);
  6.  if ($addnazwa == '') {
  7.  unset($addnazwa);
  8.  }
  9. }
  10. ?>


czy wystarczajaco zabezpiecza on wpisane przez suera dane? czy jeszcze oczyms zapomnailem smile.gif

Ten post edytował bastek8989 17.10.2006, 17:29:24


--------------------
Web-Anatomy.com - tworzenie serwisów internetowych oraz stron www z okolic Bielska-Białej. Zapraszam.
Go to the top of the page
+Quote Post
erix
post 17.10.2006, 17:37:20
Post #4





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




http://forum.php.pl/index.php?showtopic=23258

mad.gif

Jak wyzej - zamykam /~nospor/


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:09