Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze slash'ami
Forum PHP.pl > Forum > PHP
MP1
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ć.
dtb
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.
zulus
ja jak odbieram dona z $_POST lub $_GET, to przepuszczam przez stripslashes() a potem mam spokój.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.