Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> htmlspecialchars, a sql injection
.radex
post 9.04.2007, 09:16:28
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Jeśli taki temat był, to sorka - strona szukaj nie chce się ładować tongue.gif

Pytam tutaj, ponieważ to co zdobyłem nie dało mi jednoznacznej odpowiedzi.

Czy sposób na zabezpieczenie się przed atakiem sql injection (czy coś takiego) może być po prostu, filtrując zmienne z posta używając htmlspecialchars(); czy będe musiał zmieniać mnóóóóstwo zapytań sql, tak jak było to w przykładzie (temat - SQL inserction/ injection) ? Gdzieś znalazłem, że sposób na zabezpieczenie się nad atakiem jest dodając przed apostrofami i cudzysłowami backslasha, ale było to napisane w niejednoznaczny sposob....


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
pbnan
post 9.04.2007, 17:47:16
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


SQL Injection - zastrzyk SQL (dosłownie).

Przed tym atakiem nie obronisz się stosując htmlspecialchars() - ta funkcja się bardziej przydaje przy obronie przed XSS smile.gif
Musisz pododawać te cudzysłowy/apostrofy w odpowiednie miejsca w zapytaniach, niestety. smile.gif


--------------------
"Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki.
;-)
Go to the top of the page
+Quote Post
JaRoPHP
post 9.04.2007, 18:45:31
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Te funkcje (jedna z nich) powinny być używane, aby dodać "znak ucieczki" w danych wyjściowych dla MySQL-a:
- mysql_real_escape_string " title="Zobacz w manualu PHP" target="_manual,
- mysql_escape_string" title="Zobacz w manualu PHP" target="_manual,
- addslashes" title="Zobacz w manualu PHP" target="_manual (w ostateczności).


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
.radex
post 10.04.2007, 16:37:34
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


ale przecieeż htmlspecialchars dodaje backslasha przed apostrofem?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Kicok
post 10.04.2007, 16:57:12
Post #5





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Nie dodaje: htmlspecialchars" title="Zobacz w manualu PHP" target="_manual.

Może masz włączone magic_quotes_gpc i dlatego ci się wydaje, że jakaś funkcja ci dodaje backslashe?


Osobiście jednak uważam magic_quotes_gpc za dziadostwo a nie zabezpieczenie i w poważniejszych skryptach używam na początku:
  1. <?php
  2. if(get_magic_quotes_gpc() == 1) 
  3. {
  4. function remove_slashes(&$item, $key) {
  5. $item = stripslashes($item);
  6. }
  7.  
  8. array_walk_recursive($_POST, 'remove_slashes');
  9. array_walk_recursive($_GET, 'remove_slashes');
  10. array_walk_recursive($_COOKIE, 'remove_slashes');
  11. }
  12. ?>

Oczywiście później przed przekazaniem zmiennych do zapytania zabezpieczam je na swój sposób.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
.radex
post 10.04.2007, 17:00:37
Post #6





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


ummmm.... masz rację.. sorka, zamienia na kod. czyli wg. JaroPHP nie musze zmieniac tych zapytan pod warunkiem, że użyje jedna z tych funkcji?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
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 Wersja Lo-Fi Aktualny czas: 15.06.2025 - 04:55