Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> filtracja danych wprowadzanych do bazy
robos85
post
Post #1





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


Witam, jakich uzyć funkcji, aby dane wprowadzane do bazy poprze form były bezpieczne?

czytałem ze mysql_real_escape_string do zapisu do bazy uzywać.
a do wypisywania z bazy uzywac stripslashes co pozwoli na wypisanie tekstu bez slashy i wszystko będzie "bezpieczne"

Czy takie rozwiązanie pozwoli ochronić się przed atakami sql?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
Siner
post
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

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


Na forum było dużo takich tematów, na google jeszcze więcej,
np http://www.webinside.pl/php/artykuly/197 (Filtracja danych)

Ten post edytował Siner 4.01.2008, 21:49:58


--------------------
Go to the top of the page
+Quote Post
robos85
post
Post #3





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


Z tego co doczytałem się, filtracja poprzez addslashes / stripslashes daje bezpieczeństwo
Go to the top of the page
+Quote Post
devnul
post
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual i mysql_escape_string" title="Zobacz w manualu PHP" target="_manual, te dwie dopiero dają bezpieczeństwo


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #5





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


czym one się różnia w praktyce?
Go to the top of the page
+Quote Post
devnul
post
Post #6





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


pierwszy dostosowuje do kodowania użytego w aktualnym połączeniu zestaw znaków używany jako wzorzec dla escapowania, drugi używa wzorca ogólnego, pierwszy wymaga aktywnego połączenia z bazą drugi nie (można wykonywać escapowanie jeszcze przed nawiązaniem połączenia [mysql_connect/mysql_pconnect]) a dane wyjściowe czyli to co wyciągasz z bazy i ślesz użytkownikowi filtrowałbym pod kątem xss (można to oczywiscie robić także na etapie dodawania do bazy)

Ten post edytował devnul 5.01.2008, 01:33:57


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #7





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


Pod katem XSS filtrujemy htmlspecialchars??

ale po dodaniu slash przy wyciąganiu i tak trzeba dac stripslashes inaczej będzie źle pokazywane.

Dobry trop czy raczej źle poszedłem ?
Go to the top of the page
+Quote Post
devnul
post
Post #8





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


w pewnym sęsie tak - ale nie do końca google ->xss a zrozumiesz czym to jest a co do pytań o funkcje php to ich wszystkie właściwości opisane są w manualu


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #9





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


więc chyba już doczytałem.

Przy wstawianiu do bazy używać mysql_real_escape_string

Do wypisywania dawać stripslashes(strip_tags(...));

i jeszcze taki warunek dla magic_quotes_gpc

  1. <?php
  2.  ($content) : $content;
  3. ?>



dzieki temu uniknę sql injection oraz xss?
Go to the top of the page
+Quote Post
devnul
post
Post #10





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


ja bym raczej sugerował wyłączyć zawsze na starcie magic quotes (po sprawdzeniu oczywiscie) a filtrować dane wedle potrzeby zawsze


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #11





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


Ale nie zawsze jest możliwość wyłączenia niestety:/

napisałem takie coś, jest bezpieczne?:

  1. <?php
  2. function val_in ($content) {
  3. $content = (! get_magic_quotes_gpc ()) ? mysql_real_escape_string ($content) : $content;
  4. return $content;
  5. }
  6.  
  7. function val_out ($content) {
  8. $content = strip_tags (stripslashes($content));
  9. return $content;
  10. }
  11. ?>


Ten post edytował robos85 5.01.2008, 15:04:42
Go to the top of the page
+Quote Post
devnul
post
Post #12





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


zawsze jest możliwość wyłączenia (jesli magic gpc jest włączone to filtruje tablice wejściowe get/post/cookie wywalając slashe i tym samym wyłączam gpc - dzieki temu nie musze później 100 razy sprawdzac tego czy jest włączony gpc czy nie a filtruję to co jest mi potrzebne


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #13





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


$content = (! get_magic_quotes_gpc ()) ? mysql_real_escape_string ($content) : $content;

To tego nie robi?
Go to the top of the page
+Quote Post
devnul
post
Post #14





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


w pwenym sięsie tak ale nie do końca - poczytaj w manualu jakie znaki są escapowane przez mysql_real_escape_string a jakie przez magic quotes qpc


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #15





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


a możesz pokazać jakim ty kodem filtrujesz questionmark.gif
Będę wdzięczny
Go to the top of the page
+Quote Post
devnul
post
Post #16





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


no już napisałem - zdejmujemy przez założone przez gpc (jesli są slashe)
  1. <?php
  2. array_walk_recursive($_POST,"gpc_prepare");
  3. array_walk_recursive($_GET,"gpc_prepare");
  4. array_walk_recursive($_COOKIE,"gpc_prepare");
  5. }
  6.  
  7. function gpc_prepare(&$value){
  8. $value=stripslashes($value);
  9. }
  10. ?>


a później czy to strip_tags czy htmlspecialchars, czy też odpowiednio przygotowanymi funckjami bazującymi na regexp czy innym w razie koniecznośi i w zależności od potrzeby filtruję dane


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
robos85
post
Post #17





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

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


czyli moja funkcja zadziała prawidłowo na próbę ataku ?
Go to the top of the page
+Quote Post
devnul
post
Post #18





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


jak już pisałem - czysto teorytycznie tak - w praktyce to zależy jeszcze od tego jak jej użyjesz i musisz zdawać sobie sprawę z tego jakie niedogodności niesie to za sobą


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
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: 20.08.2025 - 21:55