Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Własne zabezpieczenie przed sql injection
gandziorz
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
bełdzio
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


wstarczy, że będziesz spr czy to co user przesyła jest tym co powinien przesłać (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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?

Ten post edytował bełdzio 12.06.2009, 19:46:35
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%)
-----


A po co Ci addslashes przy mysql_real_escape_string?
Go to the top of the page
+Quote Post
gandziorz
post
Post #4





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


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ć (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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ę.

Ten post edytował gandziorz 12.06.2009, 20:14:49
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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])
Go to the top of the page
+Quote Post
gandziorz
post
Post #6





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 06:12