JSON Nedir? Modern Veri Formatına Pratik Giriş
JSON Ne Demek ve Neden Bu Kadar Yaygın?
JSON (JavaScript Object Notation), insanların rahatça okuyup yazabildiği, makinelerin de kolayca ayrıştırıp oluşturabildiği hafif bir veri formatıdır. 2001 yılında Douglas Crockford tarafından popülerleştirilmiş ve günümüzde API iletişiminin temel taşlarından biri haline gelmiştir. Metin tabanlı yapısı sayesinde HTTP üzerinden gönderilebilmesi, platform bağımsız çalışması ve neredeyse tüm programlama dillerinde yerel desteğe sahip olması onu günlük yazılım geliştirme sürecinin vazgeçilmez bir parçası kılmaktadır.
Basit bir örnek üzerinden gidelim:
{"ad": "Ayşe", "yas": 28, "aktif": true}
Bu tek satırda bir kullanıcının adı, yaşı ve hesap durumu saklanmaktadır. Karmakarışık XML etiketleri yerine bu kadar sade bir gösterim, hem geliştirme hızını artırır hem de hata ayıklama sürecini çok daha kolay hale getirir.
JSON Yapısı ve Temel Kurallar
JSON veri tutmak için yalnızca iki yapısal öğe kullanır: süslü parantezler ({}) ile nesneler ve köşeli parantezler ([]) ile diziler. Nesneler anahtar-değer çiftlerinden oluşur; anahtarlar mutlaka çift tırnak içinde yazılır ve her çift virgülle ayrılır. Değerler ise şu tiplerden herhangi biri olabilir: dize, sayı, mantıksal, null, nesne veya dizi.
Kural ihlalleri ayrıştırıcı hatalarına yol açar. Örneğin anahtarları tırnaksız yazmak, sondaki virgülü bırakmamak veya dize değerlerini tek tırnakla vermek JSON стандартına aykırıdır. Doğru kullanım şekli:
{"kullanicilar": [{"id": 1, "isim": "Mehmet"}, {"id": 2, "isim": "Zeynep"}]}
Güvenlik açısından da bu doğruluk önemlidir. Geçersiz JSON verisi alan sistemler ayrıştırma sırasında çökebilir veya beklenmedik davranışlar sergileyebilir. API entegrasyonlarında apicloud.com.tr gibi platformlarda veri alışverişlerinde formatın titizlikle korunması, istemci ve sunucu arasındaki iletişim hattının hatasız çalışmasını sağlar.
JSON ve Güvenlik Konuları
JSON kullanımı güvenlik açısından dikkatli olunması gereken birkaç noktayı beraberinde getirir. En yaygın tehlike JSON string injection’dır. Kullanıcıdan gelen veriler doğrudan sorguya veya komuta dahil edilirse sistemin güvenliği zedelenir. Bu nedenle tüm dışarıdan gelen JSON verileri doğrulanmalı ve sanitizasyondan geçirilmelidir.
Diğer bir konu JSON hijacking saldırısıdır. Bazı tarayıcılar eski standartlara göre işlem yaptığında, HTTP yanıtı olarak dönen JSON dosyaları dom elementlerinin içine yerleştirilerek kötü amaçlı kullanılabilmektedir. Bu riski azaltmak için sunucu tarafında yanıt başlıklarına uygun koruma mekanizmaları eklemek önemlidir.
Özellikle büyük hacimli API çağrıları yapan uygulamalarda payload boyutu da bir güvenlik meselesidir. Aşırı büyük JSON gövdeleri DoS (Hizmet Reddi) saldırılarında kullanılabilir. Bu nedenle her istek için maksimum boyut sınırı koymak ve gereksiz veri alanlarını kısıtlamak iyi bir uygulamadır.
Pratik Sonuçlar ve Öneriler
JSON ile çalışırken temiz, valid ve güvenli bir akış kurmak her şeyden önce gelir. Geliştiriciler şunlara dikkat etmelidir:
- Tüm JSON çıktıları geçerlilik kontrolünden geçirilmeli
- Dışarıdan alınan veriler kesinlikle doğrudan kullanılmamalı
- Güvenlik başlıkları ve kısıtlamalar düzenli olarak gözden geçirilmeli
- Hatalı formatlarda net ve güvenli hata mesajları döndürülmeli
Modern web ve mobil uygulamaların büyük çoğunluğu JSON üzerine kuruludur. Formatın inceliklerini anlamak ve güvenlik açısından bilinçli hareket etmek, güvenilir ve sürdürülebilir yazılım projeleri için kritik öneme sahiptir.