3 Şubat 2012 Cuma

Djangoda Güvenlik


Web formlarla çalışırken önemli tehtid kullanıcı giriş alanlarından tehlikeli kod yeme olasılığıdır. Bunlardan birincisi sql injection yönetemidir.
Basitçe tanımlarsak kullanıcının giriş yaptığı alan üzerinden SQl parçacığı girerek , database'imizde sql kod parçası çalıştırmasıdır.
Bunu yapabildiği takdirde verileri çekmekten, tüm database'imizi silmeye kadar imkan saldırganımız için mümkündür. Ancak django ile çalışıyorsak rahat
bir nefes alabiliriz. Django otomatik olarak kullanıcı giriş alanlarından gelen bu saldırıları temizler.

Bir diğer saldırı yönetemi ise Cross-site scripting'dir. Bu yöntemde saldırganımız veri giriş alanlarından html, yada javascript veri gönderir ki,
Bu veri db'e kayıt ediliyorsa başka kullanıcılarıda etkileyerek dramatik sonuçlar yaratabilir. En basit zarar sitenize giren kişilerin otomatik porno yada
reklam sitelerine yönelndirilmesidir. Ki sitenizin şifre sonran sayfasının bir benzeride kolaylık açılık kullanıcından bilgileri çekilebilir. Bunun için django'nun
bzilere sunduğu yöntem oldukça basit bir geliştirmedir. Tüm kullanıcıdan gelen datalar geri gösterilmesinden escape filtresi uygulanmalıdır.

<.h1>Merhaba, {{ name|escape }} hoşgeldin!

<.input type="text" name="q" value="{{ query|escape }}".>

gibi.

Bir diğer tehlike, projenin debug modda bırakılması durumunda oluşur. Debug modda bir hata oluştuğunda hata hakkında oldukça ayrıntılı bilgi verilmektedir.
Burada aktarılan bilgiler sistem hakkında saldırgan için çok önemli bilgiler içerebilir. Bunun için sisteminiz production'a alındığında DEBUG değeri false 'a
atanmalıdır. Geliştiriciler bu durumda bu hata mesajlarını nasıl alacak diye sorarsanız, ADMINS kısmında tanımlı kullanıcılara bu hata mesajları mail olarak atılacaktır.



http://www.djangobook.com/en/beta/chapter20/

Hiç yorum yok: