2013-03-20 2 views
8

Bir üretim Django 1.5 uygulamasını sürdürüyorum. Son zamanlarda JSON, XML ve YAML nesnelerinin yüklenmesiyle ilgili çeşitli güvenlik açıkları hakkında çok fazla gürültü vardı. Doğru bir şekilde anlarsam, yükleme işlevlerindeki hataları kullanmak için girdi dikkatle hazırlandı.Django projesinde güvenli JSON, XML ve YAML yüklemesi sağlanması

Şimdi, Django'nun (veya kullandığımız düzinelerce üçüncü taraf uygulamasının) bu protokollerin her birini nerede kullandığı hakkında hiçbir fikrim yok. Bu tür güvenlik açıklarından nasıl korunabilirim? Django'nun JSON, XML ve YAML'yi güvenli bir şekilde yüklemesini sağlamalı mıyım?

+3

Django'nun JSON, XML ve YAML'yi güvenli bir şekilde yüklediğinden emin olmak Django geliştiricilerin işidir. Sizi temin ederim, kodunuzda muhtemelen Django'lara göre daha fazla güvenlik sorunu var (bunun açık bir şekilde daha fazla etkiye sahip olmasına ve bulunma ihtimalinin daha yüksek olmasına rağmen). – delnan

+0

Hangi gürültüden bahsediyorsunuz? Ayrıntılar hakkında herhangi bir link var mı? –

+5

Sanırım [Rails YAML istismarından] bahsediyor (http://rubysource.com/anatomy-of-an-exploit-an-in-depth-look-at-the-rails-yaml-vulnerability/) ve [DOS saldırı vektörleri ayrıştıran Python XML kütüphanesi] (http://blog.python.org/2013/02/announcing-defusedxml-fixes-for-xml.html). –

cevap

1

Django, varsayılan olarak bu biçimlerde kullanıcı tarafından kodlanmış girdiyi kabul etmemektedir ve genel olarak üçüncü taraf uygulamalarına da uymaz, ancak emin olmak için kullanıcı tarafındaki parçaları denetlemeye değer. Büyük olanlar API sağlayıcıları olacak (Tastypie, Django REST Framework, vb.). Şu anki sürümlerde iseniz güvende olmalısınız, ancak test etmeye/onaylamaya değer.

Uygulamanıza bu biçimlerden herhangi bir şey yüklüyorsanız, defusedxml ve YAMLs safe_load yöntemini kullandığınızdan emin olun. Standart kütüphane json modülünün bu türden istismarlardan emin olması gerekir.