Toplu atama (ARCH2129)
Anahtar python.security.mass-assignment · Önem warning · Kategori security · CWE CWE-915
Tüm istek gövdesini doğrudan bir ORM modeline atamak, saldırganın is_admin gibi korunması gereken alanları da ayarlamasına olanak tanır. Yalnızca beklenen alanlar bir izin listesiyle kabul edilmelidir.
Hatalı
Bölüm başlığı “Hatalı”def update_profile(request): user = User.objects.get(pk=request.user.id) for key, value in request.POST.items(): setattr(user, key, value) user.save()ALLOWED = {"display_name", "bio", "avatar_url"}
def update_profile(request): user = User.objects.get(pk=request.user.id) for key in ALLOWED & request.POST.keys(): setattr(user, key, request.POST[key]) user.save()Düzeltme
Bölüm başlığı “Düzeltme”Güncellenebilecek alanları açık bir izin listesine sınırlayın; istek gövdesini doğrudan modele bağlamayın.