![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 194 Pomógł: 0 Dołączył: 22.09.2003 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Automatyczne dodawanie slashów zależy od konfiguracji serwera. To sprawia problem.
Zaaktualizowane Tekst przesyłany jest metodą $_POST. Jak wiadomo, php doda do niego slashe. Potem slashe doda jeszcze funkcja mysql_real_escape_string(), więc będą podwójne (\\\\). Co więc zrobić, by nie były one podwójne? Otwieram tabelę w programie MySQL Control Center i wygląda, jakby MySQL usunął niepotrzebne (\\). Jednak to jest chyba nieprawda. Odczytuję z bazy dane z linijką na początku skryptu: Kod set_magic_quotes_runtime(1); W polu textarea pojawiają się "\\" zamiast "\" (jak było wysłane metodą POST). 1. Czy automatyczne dodawanie slashów przez php jest wystarczające, by nie doszło do SQL Injection? 2. Jak najlepiej ten problem rozwiązać? 3. Czy wystarczy tylko zamienianie " na \", by nie doszło do SQL Injection (SET costam=" i w cudzysłowiach dopiero zmienna ", )? :excl: Można to rozwiązać, sprawdzając czy GPC jest włączone i jeśli tak, zastosować stripslashes(), ale być może nie ma co tyle kombinować. Ten post edytował MP1 2.01.2006, 17:21:59 -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 476 Pomógł: 1 Dołączył: 5.11.2005 Skąd: Bieruń city Ostrzeżenie: (0%) ![]() ![]() |
1. upewnij sie ze masz wylaczona obsluge zapytan zawierajce ; i bedzie ok
2. zrob sobie jakies filtry typu: * tylko znaki alfanumeryczne * tekst nie dluzszy niz n znakow * tekst nie moze zawierac znakow x, y, z itp. Ten post edytował dtb 2.01.2006, 17:24:25 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 225 Pomógł: 18 Dołączył: 30.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ja jak odbieram dona z $_POST lub $_GET, to przepuszczam przez stripslashes() a potem mam spokój.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:17 |