PHP - Weryfikowanie poprawności argumentów w formacie JSON
Przyszło mi ostatnio napisać prostą aplikację, której zadaniem było utrwalenie w bazie przesłanych danych w formacje JSON. Aby operacja taka była bezpieczna i nieczuła na ataki typu SQL Injection należałoby zweryfikować poprawność przesyłanych parametrów. O ile w przypadku, gdy spodziewamy się otrzymać wartość liczbową, czy odpowiedniego stringa, problemu nie ma, o tyle sprawdzenie czy odebrane dane na pewno są w formacie JSON wymagało chwili zastanowienia.
Czym jest format JSON?
JSON (JavaScript Object Notation) jest prostym i bardzo wygodnym formatem umożliwiającym przesyłanie złożonych danych, które mogą zostać szybko zinterpretowane przez wiele języków programowania. Ja akurat miałem obsłużyć ten format przy pomocy PHP. Tak jak wspomniałem we wstępie do tego artykułu, problemem była weryfikacja, czy dane te są na pewno zapisane w formacje JSON, a nie jest to np. szkodliwe zapytanie SQL jako forma ataku na bazę danych. Na szczęście problem okazał się mieć proste rozwiązanie.
Jak zweryfikować poprawność danych JSON?
Język PHP zawiera zdefiniowaną funkcję json_decode(), która interpretuje wskazany kod JSON. Jeśli zajrzymy do jej dokumentacji, zauważymy, że jeśli przekazany argument nie da się zinterpretować, a zatem nie jest poprawnie zapisany w formacie JSON, funkcja ta zwróci NULL. I tego właśnie potrzebujemy! Sprawdzimy, czy parametr może może być dekodowany i jeśli tak, możemy na nim pracować dalej, bo wiemy, że jest poprawny. Przekładając to na kod, możliwy jest na przykład taki scenariusz:if(json_decode($argumentJSON) != NULL)
{
// odpowiednie operacje
}

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!