SORU
27 Aralık 2008, CUMARTESİ


JSON güvenlik en iyi yöntemler?

JSON vs XML konusunda araştırma yaparken this question rastladım. Şimdi JSON tercih nedenlerinden biri, Javascript, yani eval() ile dönüşüm kolaylığı olarak yer aldı. Şimdi bu hemen güvenlik açısından potansiyel sorunlu olarak bana vurdu.

JSON is not as safe as people think it is hakkında bu blog yazısı üzerinden JSON güvenlik özellikleri içine ve biraz araştırma yapmaya başladım. Bu bölümü çıkardı:

Güncelleme:Eğer JSON 100%yapıyorsanız doğru, o zaman sadece olacak üst düzeyde nesneler. Diziler, Dizeleri, Sayılar, vb olacak sarılmış. JSON bir nesne daha sonra başarısız olur eval() JavaScript çünkü tercüman bakıyor sanacak bir nesne yerine bir blok. Bu karşı korumak için uzun bir yol gidiyor bu, ancak hala en iyi saldırılar güvenli verilerinizi korumak için BM-URL öngörülebilir.

Bu başlamak için iyi bir kural Tamam, bu yüzden: JSON nesneleri üst düzeyde her zaman ve asla diziler, sayılar ya da dizeleri nesneler olmalıdır. Benim için iyi bir kural gibi geliyor.

Başka bir şey JSON ve AJAX ile ilgili güvenlik olduğunda ya da önlemek için var mı?

Yukarıdaki son bölümünde beklenmedik URL bahseder alıntı. Herkes senin özellikle bu konuda daha fazla bilgi sahibi, PHP mu? Ben çok daha deneyimli Java daha PHP ve Java kolay (bu harita bir dizi bir URL için bir tek sunucu uygulaması) ise tüm PHP yaptım var eşlenen tek bir URL için PHP script.

Ayrıca, tam olarak nasıl, güvenliği artırmak için öngörülemeyen URL kullanıyor musunuz?

CEVAP
9 Ocak 2009, Cuma


JSON, özellikle XSRF karşı güvenlik saldırıları vardır.

Güvenlik açığı, bir web hizmeti kimlik doğrulaması için çerezleri kullanır oluşur, ve bir JSON dizi yanıt olarak hassas veri içeren bir GET isteğine yanıt verir.

Eğer bir saldırgan olabilir hileli bir kullanıcı kim açmış bir hizmet, naive-webapp.com, ziyaret edip onların site (veya herhangi bir site gömer bir İFRAME kontrol ediyorlar, örneğin üzerinden gömülü reklamlar) sonra ınsert <script> etiketiyle SRC için naive-webapp.com ve potansiyel olarak çalmak için kullanıcının veri. Bu böyle Array JavaScript kurucu: javascript bir cilvesi bağlıdır

 <script>
   // Overload the Array constructor so we can intercept data
   var stolenArrays = [];
   var RealArray = Array;
   Array = function () {
     var arr = RealArray.apply(arguments);
     stolenArrays.push(arr);
     return arr;
   }
 </script>
 <!-- even though the attacker can't access the cookies,
   - he can cause the browser to send them to naive-webapp.com -->
 <script src="//naive-webapp.com/..."></script>
 <script>
   // now stolenArrays contains any data from the parsed JSON
 </script>

ECMA 5 [] genel nesne üzerinde Array aramak için neden kafa karıştırıcı davranış giderildi ve birçok modern tarayıcılar artık bu saldırılara karşı daha duyarlıdırlar.

Bu arada, Petrol öngörülemeyen URL yanlış. URL rastgele tanımlayıcıları şifreli olarak güvenli kaynakları korumak için iyi bir yol. Kimlik tabanlı güvenlik Yağı da anlaşılacağı gibi değil her derde deva. Güvenli dağıtılmış uygulama planı şifreli kimlik kavramını gerektirmeyen URL güvenli tanımlayıcılar dayalı bir örnek http://waterken.sourceforge.net/ bkz.

DÜZENLEME:

Dikkate JSON vs XML, belirli bir saldırı vektörleri de XML farkında olmalıdır.

XXE XML Harici varlık saldırılar, hazırlanmış XML güvenlik duvarı üzerinden dosya sistemi ve ağ kaynaklarına erişmek için kullanın.

<!DOCTYPE root 
[
<!ENTITY foo SYSTEM "file:///c:/winnt/win.ini">
]>
...
<in>&foo;</in>

Uygulama giriş gömer ("win içerir.", parametre ını dosyası) web hizmeti yanıt için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Wills

    David Wills

    31 Aralık 2007
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • UKF

    UKF

    2 Aralık 2009