私はdjangoで遊んでいて、ユーザーがURL http:/// localhost:8000 / username /info/を介して自分の情報にアクセスできる小さなアプリを作成しました。http:/// localhost:8000 / username / info / edit /を介してその情報を編集する機能を追加したいが、現在ログインしているユーザー(django.contrib.authを使用)が自分のユーザーのみにアクセスできるようにしたい情報。ビューで次のことを行うことでこれを実現しました(ビュー引数のユーザー名はURLから取得されます)。
@login_required
def edit_info(request, username=''):
if request.user.username == username:
# allow accessing and editing the info..
else:
# redirect to some error page
したがって、明らかに、ユーザー'johnny'がユーザー'jimmy'に属する情報を、ブラウザーで/ jimmy / info /edit/をポイントするだけで編集することは望ましくありません。上記は機能しますが、セキュリティに関しては、ここで何かが欠落していることが懸念されます。これはこれについて行く正しい方法ですか?ありがとう。