Python 防止使用Django表单操纵表单输入
我有一个问题是如何防止攻击者操纵表单输入 比如说,我有一位客户提出了一个租赁请求。在Django,有一个Python 防止使用Django表单操纵表单输入,python,django,forms,Python,Django,Forms,我有一个问题是如何防止攻击者操纵表单输入 比如说,我有一位客户提出了一个租赁请求。在Django,有一个create_rentURL,比如rent-website.com/customer/1/create_rent 因为在url.py中 url(r'^customer/(?P<pk>[0-9])/create_rental/' ,CreateRentalView.as_view() , name='customer_create_rental'), 在views.
create_rent
URL,比如rent-website.com/customer/1/create_rent
因为在url.py中
url(r'^customer/(?P<pk>[0-9])/create_rental/'
,CreateRentalView.as_view()
, name='customer_create_rental'),
在views.py中
CreateRentalView(FormMixin, DetailView):
def get_form(self):
super(CreateRentalView, self).get_form()
self.base_fields['for_customer'].initial = self.kwargs['pk'] #in this case 1
最后,在模板中,您将拥有HTML
问题是,如果攻击者将该值更改为2,则他可以为他可能不服务的客户添加该值
Django中有什么方法可以防止或减轻这种情况吗?这是一个关于每个用户可以访问哪些对象的实现自己的逻辑的问题,它与框架本身无关
话虽如此,请看一下:
django guardian是django对象权限的实现,提供额外的认证后端
这是一个关于每个用户可以访问哪些对象的实现您自己的逻辑的问题,它与框架本身无关
话虽如此,请看一下:
django guardian是django对象权限的实现,提供额外的认证后端
为什么要保护攻击者?在这种情况下,客户id不应该是url的一部分,但应该从会话中检索。为什么要保护攻击者?在这种情况下,客户id不应该是url的一部分,而应该从会话中检索。
CreateRentalView(FormMixin, DetailView):
def get_form(self):
super(CreateRentalView, self).get_form()
self.base_fields['for_customer'].initial = self.kwargs['pk'] #in this case 1