Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kiedy używamy mysql_real_escape_string?
Forum PHP.pl > Forum > PHP
Zagiewa
Witam. Wiem do czego funkcja ta służy tongue.gif ale czy warto zawsze jej używać? W przypadku logowania się użytkownika OK jest wręcz konieczna ale jeśli np. łączę się z bazą po to aby pobrać nazwę losowo wybranego obrazka który się później wyświetla to chyba nie ma sensu prawda?

Z tego co wiem funkcja ta ma zapobiec odczytaniu ważnych informacji ale jeśli skrypt łączy się z bazą aby odczytać małe istotne dane jak np. obrazek do którego i tak ma się dostęp to chyba nie ma sensu wykorzystywanie tego typu zabezpieczeń?
phpion
Zabezpieczaj wszystkie dane, które pochodzą od użytkownika (czyli najczęściej te wpisane w formularzach). Jeśli samodzielnie podstawiasz dane do zapytań to wymogu takiego nie ma, ale jest to dobrym nawykiem.
Spawnm
Filtrujesz wszystkie dane z formularzy ale również dane z $_SERVER .
Btw. czemy mysql_ a nie mysqli_ czy pdo ?
Zagiewa
Czyli dobrze mi się wydawało. Funkcji tej trzeba używać przede wszystkim w sytuacji kiedy to użytkownik ma przed sobą formularz
Crozin
Funkcji tej używasz gdy:

1. Dane pochodzą ze źródła nad którym nie masz bezpośrednio kontroli. Będą to formularze, dane z innych serwisów czy nawet dane systemowe.
2. Format danych może zawierać potencjalnie niebezpieczne znaki, innymi słowy: jeżeli wcześniej rzutujesz sobie jakąś zmienną na typ całkowity masz gwarancję tego, że jest bezpieczna. Podobnie, gdy zmienna najpierw przechodzi przez jakiś walidator, który przepuszcza tylko znaki a-z i 0-9.

Mimo wszystko z reguły za takie "pierdoły" odpowiedzialny jest jakiś automat, który filtruje wszystko co popadnie - bo generuje to marginalne obciążenie, a chroni Cię przed Tobą samym (zawsze możesz się zapomnieć).

I tak jak już Spawnm wspomniał - użyj PDO i prepared statements.
adiadi
Przepraszam za odgrzebywanie starego tematu, ale mam pytanie związane z tym tematem.

Załóżmy, że użytkownik wprowadza dane do formularza - np. imię i nazwisko. Dane te zapisuję w tabeli TABELA1, oczywiście stosując funkcję mysqli_real_escape_string().

Jeśli chcę teraz pobrać te dane z TABELA1 i zapisać je do TABELA2, to czy po odczytaniu danych z TABELA1, też muszę (powinienem) na tych danych użyć funkcji mysqli_real_escape_string() ?
nospor
Jesli po drodze uzywasz php to tak. Jesli zas instert robisz na zasadzie
INSERT INTO... SELECT
to nie.
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.