Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kiedy używamy mysql_real_escape_string?
Zagiewa
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

Ostrzeżenie: (0%)
-----


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ń?
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Filtrujesz wszystkie dane z formularzy ale również dane z $_SERVER .
Btw. czemy mysql_ a nie mysqli_ czy pdo ?
Go to the top of the page
+Quote Post
Zagiewa
post
Post #4





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

Ostrzeżenie: (0%)
-----


Czyli dobrze mi się wydawało. Funkcji tej trzeba używać przede wszystkim w sytuacji kiedy to użytkownik ma przed sobą formularz
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
adiadi
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.04.2017

Ostrzeżenie: (0%)
-----


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() ?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jesli po drodze uzywasz php to tak. Jesli zas instert robisz na zasadzie
INSERT INTO... SELECT
to nie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 08:05