Django HiddenInput用户更改POST数据的安全性

时间:2016-01-19 07:03:23

标签: django forms model modelform

据我所知,创建一个安全且需要额外相关字段的表单是一个很大的负担。

示例我是如何做到这一点的: 1.创建表单。

class Myform(ModelForm):
    def __init__(self, *args, **kwargs):
    relatedfieldinstance = kwargs.pop('relatedfield')
    super(CustomActivityTypeForm, self).__init__(*args, **kwargs)        

    self.fields['relatedfield '].widget = forms.HiddenInput()
    self.fields['relatedfield '].instance = relatedfieldinstance

THIS STILL ENABLES THE USER TO HIJACK YOUR POST!!!

2。创建视图:

form = MyForm(request.POST or None, instance=None, relatedfield =relatedfield ) 
if form.is_valid:

     mynewinstance=form.save(commit=False)

      mynewinstance.relatedfield = relatedfield 
      mynewinstance.save()

有没有更好的方法呢?因为很容易忘记在form.is_valid子句中再次设置它并认为它正在工作(它是!),从而造成巨大的安全漏洞。

我需要相关字段,因为它对我的模型验证是必要的(模型上的干净方法)。

0 个答案:

没有答案