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ć.