Змея / Говнокод #18501 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
class UserProductlistView(ListView):
    template_name = 'productlist/userproductlistitem_list.html'
    model = UserProductListItem
    paginate_by = 20
    list = None
    formset = modelformset_factory(UserProductListItem, ProductlistItemForm, extra=0, max_num=20)
    deleteform = None

    def get_queryset(self):
        self.list = get_object_or_404(UserProductList, slug=self.kwargs.get('slug'))
        return UserProductListItem.objects.filter(productlist=self.list, productlist__user=self.request.user)

    def post(self, request, **kwargs):
        self.list = get_object_or_404(UserProductList, slug=self.kwargs.get('slug'))
        if request.POST.get('deletelist'):
            self.deleteform = ProductlistDeleteForm(request.POST, instance=self.list)
            if self.deleteform.is_valid():
                self.deleteform.instance.delete()
                messages.success(request, u'Список "%s" удален' % (self.list,))
                return redirect('userproductlist_list')
        if request.POST.get('subscribelist'):
            self.list.subscribe = not self.list.subscribe
            self.list.save()
            messages.success(request, u'Настройки списка "%s" изменены' % (self.list,))
            return redirect('userproductlist_list')
        return self.get(request, **kwargs)

Получаем список товаров юзера по slug в URL, не добавляя в запрос текущего юзера. Действительно, зачем? Ведь его можно добавить при получении товаров списка.
В результате: любой может открыть список любого человека, зная URL этого списка, увидеть, что там нет товаров, порадоваться этому, и удалить список.

Запостил: krokodil_910 krokodil_910, (Updated )

Комментарии (1) RSS

  • OWASP top 10: недостаточная аутентификация, аутентификация на стороне клиента.
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8