Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własne zabezpieczenie przed sql injection
Forum PHP.pl > Forum > PHP
gandziorz
Witam,
Piszę skrypt który będzie używany przez większość a nie tylko przez administratora dlatego musiałbym zastosować mocniejsze zabezpieczenia przed sql injection.

Przy liczbach stosuje:
(int) np.
  1. <?php
  2. $liczba = (int) $_POST['dana'];
  3. ?>


Przy wpisach/dodawaniu do mysql stosuję:
mysql_real_escape_string
addslashes
aby uniknąć xss stosuje htmlentities

Jakie jeszcze filtry mogę zastosować?
Wiem że jest temat przyklejony odnośnie tego ale każdy stawia inne rozwiązanie do odpowiedniego skryptu i nie można zawsze przenieść rozwiązań do własnego.
Pozdrawiam i liczę że pomożecie.
bełdzio
wstarczy, że będziesz spr czy to co user przesyła jest tym co powinien przesłać smile.gif czyli jak ma wpisać wiek to spr czy jest liczbą, jak kod to czy pasuje do \d{2}-\d{3} etc etc jeśli nie to die( ) i juz smile.gif

// jakie jeszcze mozesz zastosowac? wsio masz w topiku o ktorym wspomniales, piszesz ze Twoj serwis wymaga czegos specjalnego, a nie piszesz nic o nim wiec na jakiej podstawie mamy cos konkretnego doradzic?
Crozin
A po co Ci addslashes przy mysql_real_escape_string?
gandziorz
Cytat(bełdzio @ 12.06.2009, 20:45:33 ) *
wstarczy, że będziesz spr czy to co user przesyła jest tym co powinien przesłać smile.gif czyli jak ma wpisać wiek to spr czy jest liczbą, jak kod to czy pasuje do \d{2}-\d{3} etc etc jeśli nie to die( ) i juz smile.gif

// jakie jeszcze mozesz zastosowac? wsio masz w topiku o ktorym wspomniales, piszesz ze Twoj serwis wymaga czegos specjalnego, a nie piszesz nic o nim wiec na jakiej podstawie mamy cos konkretnego doradzic?

Przy rejestracji nie ma takiej możliwości kontrolowania.
Wiek sprawdzam za pomocą funkcji checkdate.

Na stronie do aktualności/artykułów będzie możliwość dodawania komentarzy teraz zachodzi pytanie jak filtrować treść komentarzy.
html się wytnie, ale co z injection?
Zamiast html będzie bb-code.

addslasches usunęłem, dzięki za radę.
Fifi209
Jeżeli tak bardzo chcesz się zabezpieczać, możesz skorzystać z biblioteki PDO, gdzie podaje się typ przekazywanej zmiennej i ew. jej długość.

W innym przypadku, jak już pisali mysql_real_escape_string, ja bym dodał wyrażenia regularne. (określasz "bezpieczny" dozwolony ciąg np. tylko a-z i 0-9 [np. dla logowania])
gandziorz
Cytat(fifi209 @ 12.06.2009, 21:16:19 ) *
Jeżeli tak bardzo chcesz się zabezpieczać, możesz skorzystać z biblioteki PDO, gdzie podaje się typ przekazywanej zmiennej i ew. jej długość.

W innym przypadku, jak już pisali mysql_real_escape_string, ja bym dodał wyrażenia regularne. (określasz "bezpieczny" dozwolony ciąg np. tylko a-z i 0-9 [np. dla logowania])

No racja wyrażenia regularne też są dobre.
Wtedy łatwo określić co może posiadać login.

Zapoznam się z biblioteką PDO.
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.