![]() |
![]() |
![]()
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: 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 ![]() 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! ;)
|
|
|
![]() |
![]()
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
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
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 ![]() Ten post edytował modern-web 29.10.2010, 16:46:03 -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
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. |
|
|
![]()
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ć
![]() 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! ;)
|
|
|
![]()
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. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
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 :
-------------------- $email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) { // Houston, we have a problem.... } |
|
|
![]()
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. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() 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ś a wystarczy
-------------------- $email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) { // Houston, we have a problem.... } |
|
|
![]()
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. ![]() -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:41 |