データベースで何かを行い、POST によって送信されたユーザー認証を必要とするフォームがあるとしましょう。システムを悪用するために誰かに悪意を持ってユーザーを変更するように要求することは可能ですか?
次の例では、データベースにアイテムを作成しますが、ログイン ユーザーが必要です。誰かがrequest.userで他のユーザーのデータを送信できますか?
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from items_core.models import Item
from items.forms import CreateItemForm
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
@login_required
def create(request):
errors = None
if request.method == 'POST':
form = CreateItemForm(request.POST)
if form.is_valid():
try:
Item.objects.get(
name = form.cleaned_data['name'],
user = request.user
)
errors = 'Item already exist. Please provide other name.'
except Item.DoesNotExist:
Item.objects.create(
name = form.cleaned_data['name'],
user = request.user
)
return redirect('items:list')
form = CreateItemForm()
else:
form = CreateItemForm()
template = {
'form':form,
'items':Item.objects.filter(user=request.user),
'request':request,
'errors':errors
}
return render(request, 'items/item_create.html', template)
ありがとう!