Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenia skryptów PHP
Forum PHP.pl > Forum > PHP
modern-web
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ę.
Pawel_W
nie, nie jest poprawny, bo żeby przefiltrować dane funkcją mysql_real... musisz nawiązać połączenie haha.gif
Crozin
Temat: Bezpieczenstwo skryptow PHP

btw: jest 2010... użyj PDO zamiast katować się z mysql_*().
modern-web
No dobrze...
Rozumiem, że mam przekształcać wszystkie skrypty na bibliotekę PDO sciana.gif ?
Mephistofeles
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.
modern-web
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.
konrados
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.
jang
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)
kilas88
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.
jang
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);
modern-web
Macie jeszcze kilka pomysłów?
Oczywiście pomijając ograniczenie z nieskończoności do np. 15 znaków. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.