Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zabezpieczenia skryptów PHP, mysql_real_escape_string(); i inne tego typu...
modern-web
post
Post #1





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Witam wszystkich!
Ostatnio poczytałem bardzo dużo na temat SQL Injection oraz innych tego typu atakach.

Posiadam przykładowy skrypt:

  1. $abc = trim($_POST['abc']);


I moje pytania są następujące:

1. Jest on poprawny?
2. Jeśli tak to jak można dodatkowo zabezpieczyć zapytania do baz danych/formularze itp...
3. Jeśli nie to proszę o jakiś zamiennik lub wskazanie błędu smile.gif

Z góry dzięki za pomoc.
Pozdrawiam.


P.S.
Przepraszam jeśli temat się powtarza, ale nigdzie nie znalazłem podobnej sytuacji do tej, w której się znajduję.

Ten post edytował modern-web 29.10.2010, 16:16:20


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


nie, nie jest poprawny, bo żeby przefiltrować dane funkcją mysql_real... musisz nawiązać połączenie haha.gif
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Temat: Bezpieczenstwo skryptow PHP

btw: jest 2010... użyj PDO zamiast katować się z mysql_*().
Go to the top of the page
+Quote Post
modern-web
post
Post #4





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


No dobrze...
Rozumiem, że mam przekształcać wszystkie skrypty na bibliotekę PDO sciana.gif ?

Ten post edytował modern-web 29.10.2010, 16:46:03


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #5





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Jeśli nie są zbyt skomplikowane i mózg ci przy tym nie wybuchnie to tak, przydałoby się.
Ale o ile działają i są bezpieczne to nie trzeba.
Go to the top of the page
+Quote Post
modern-web
post
Post #6





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


O mnie nie masz się co martwić winksmiley.jpg
Skrypty nie są łatwe. Prace nad nimi trwały 5 miesięcy.
W sumie jest to 7512 plików.

Ale fragmenty, które wymagają zabezpieczenia znajdują się w +- 10 plikach.
W związku z powyższym pytam się Was - ekspertów, jak mogę wywalić znaki specjalne ()<>'"/\{} itp. z formularza tak by nie szło wstrzyknąć własnego kodu.

Prosiłbym o przykład, który by mi to zilustrował - mysql_real_escape_string() / mysql_escape_string / ...
Oczywiście jestem otwarty na inne propozycje...

Pozdrawiam.

Ten post edytował modern-web 29.10.2010, 22:54:15


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
konrados
post
Post #7





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Użyj jeszcze htmlspecialchars, bo mysql_real_escape_string nic nie zrobi ze znaczkami < oraz >.
Ale to możesz robić przed wypluciem na ekran, niekoniecznie przed dodawaniem do bazy danych.
Go to the top of the page
+Quote Post
jang
post
Post #8





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


Cytat(modern-web @ 29.10.2010, 23:48:42 ) *
z formularza tak by nie szło wstrzyknąć własnego kodu.

Możesz sobie "wyczyścić" wszystko przy pomocy np. http://dev.kohanaframework.org/projects/ko...aries/Input.php
albo z w/w tylko :
  1. 367 public function xss_clean($data, $tool = NULL)


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
Go to the top of the page
+Quote Post
kilas88
post
Post #9





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


http://php.net/manual/pl/book.filter.php

btw.
http://dev.kohanaframework.org/projects/ko...aries/Input.php
nieźle - setka wyrażeń regularnych, odwołania do HTML Purifier (który składa się z kilkuset plików / setek wyrażeń), etc - to rozwiązanie musi być bardzo wolne, niemniej na pewno bezpieczne. pokazuje to tylko, jak bardzo warto zacząć korzystać z PDO i prepared statements / stored procedures gdzie tylko możemy.
Go to the top of the page
+Quote Post
jang
post
Post #10





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


Cytat(kilas88 @ 30.10.2010, 01:37:51 ) *
btw.
http://dev.kohanaframework.org/projects/ko...aries/Input.php
nieźle - setka wyrażeń regularnych, odwołania do HTML Purifier (który składa się z kilkuset plików / setek wyrażeń), etc - to rozwiązanie musi być bardzo wolne, niemniej na pewno bezpieczne. pokazuje to tylko, jak bardzo warto zacząć korzystać z PDO i prepared statements / stored procedures gdzie tylko możemy.

@kilas88 nie jestem zwolennikiem kohany a więc to nie wojna polsko-polska smile.gif ale
1. nie setka wyrażeń regularnych a 10% z tego co podałeś
2. "odwołania do HTML Purifier" - aby skorzystać z HTML Purifier to musisz tego chcieć a więc
musiałbyś
  1. $input->xss_clean($suspect_input, 'htmlpurifier');
a wystarczy
  1. $input->xss_clean($suspect_input);


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
Go to the top of the page
+Quote Post
modern-web
post
Post #11





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Macie jeszcze kilka pomysłów?
Oczywiście pomijając ograniczenie z nieskończoności do np. 15 znaków. winksmiley.jpg


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:41