現在、Djangoの学習中です。
ユーザーがデータの公開・非公開を選択出来るシステムを作成したいと思っており、is_publicがTrueであれば公開、Falseであれば非公開のモデルを作成しました。また、非公開であっても、自身に関連づけられているデータは表示されるようにしました。
viewで判定をした上で他人のデータを閲覧する際にはクエリにフィルタリングをする予定で、一般的な接続では自身に紐付いたデータしか非公開のデータが閲覧が出来ないことの確認はできましたが、悪意のあるユーザーがrequestデータを書き換えることによって非公開としたデータを閲覧できてしまうのではないかと不安になりました。
クラスベースview内のget_querysetをoverrideする際にself.request.user.pkからログイン中ユーザーのpkを取得することはセキュリティ上問題ありませんでしょうか。
該当のソースコード
python
1# views.py 2 3def get_queryset(self): 4 pk = self.kwargs['pk'] 5 query_set = self.model.objects.filter(user=pk) 6 if self.request.user.pk == pk: 7 pass 8 else: 9 query_set = query_set.filter(is_public=True) 10 return query_set
よろしくお願いいたします。
あなたの回答
tips
プレビュー