![]() |
![]() |
![]()
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? |
|
|
![]() |
![]()
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 -------------------- |
|
|
![]()
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
|
|
|
![]()
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
-------------------- |
|
|
![]()
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?
|
|
|
![]()
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 -------------------- |
|
|
![]()
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 ? |
|
|
![]()
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
-------------------- |
|
|
![]()
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
dzieki temu uniknę sql injection oraz xss? |
|
|
![]()
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
-------------------- |
|
|
![]()
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?:
Ten post edytował robos85 5.01.2008, 15:04:42 |
|
|
![]()
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
-------------------- |
|
|
![]()
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? |
|
|
![]()
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
-------------------- |
|
|
![]()
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
![]() Będę wdzięczny |
|
|
![]()
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)
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 -------------------- |
|
|
![]()
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 ?
|
|
|
![]()
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ą
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:55 |