Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: update danych i SQL Injection
Forum PHP.pl > Forum > PHP
Sabudda
Witam,
Natrafiłem na mały problem. Otóż mam pole gdzie można upatować dane w bazie danych. By zapobiec duplikowaniu znaczników "\" dodałem addslashes dopiero przy wyświetlaniu danych, nie przy updatowaniu. No i pojawia się problem. Jeśli przy dodawaniu nie ma żadnego zabezpieczenia w postaci addslashes to ktoś może włamać się do bazy. Z kolei jeśli dam przy dodawaniu addslashes i użytkownik wpisze jakiś 'niedozwolny' znak to backslashe będą się duplikować...

Jak to rozwiązać ?
Kicok
Na początku sprawdzamy czy magic_quotes_gpc jest włączone: get_magic_quotes_gpc" title="Zobacz w manualu PHP" target="_manual. Jeśli tak, to sprawę zabezpieczania danych wejściowych masz już z głowy. Jeśli nie, to używasz addslashes() tuż przed wykonaniem zapytania do bazy danych.
Jeśli te same dane które wstawiłeś do zapytania chcesz wyświetlić gdzieś na stronie, to tuż przed wyświetleniem potraktuj je jeszcze funkcją stripslashes()

Danych pobranych z bazy nie musisz przepuszczać przez stripslashes() przed wyświetleniem.
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.