Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 防止使用Django表单操纵表单输入_Python_Django_Forms - Fatal编程技术网

Python 防止使用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.

我有一个问题是如何防止攻击者操纵表单输入

比如说,我有一位客户提出了一个租赁请求。在Django,有一个
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