1
攻撃者がフォーム入力を操作するのを防ぐために質問があります。Djangoフォームでのフォーム入力操作の保護
たとえば、私は顧客からレンタルリクエストを受けています。 Djangoにはなど、create_rental
のURLがあります。
urls.py
url(r'^customer/(?P<pk>[0-9])/create_rental/'
,CreateRentalView.as_view()
, name='customer_create_rental'),
でDjangoのFormクラスがfor_customer
属性を持っているので。さんはviews.pyで
CreateRentalForm(forms.Form):
for_customer= forms.IntegerField(..., widget=forms.HiddenInput())
rental_title = forms.CharField()
#and so on and so forth
があるforms.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にはこれを防止する方法がありますか?
なぜあなたは攻撃者を保護したいですか?この種のことでは、顧客IDはURLの一部ではなく、セッションから取得する必要があります。 – e4c5