【发布时间】:2020-06-29 18:03:30
【问题描述】:
我刚刚注意到,用户可以通过更改 URL 中的其他用户 pk 或用户名(作为 slug)手动访问其他用户更新配置文件视图。 比如
http://127.0.0.1:8000/account/dashboard/18/updateprofile
假设这是用户更新个人资料的网址,如果该用户将 pk 更改为 19 并进行编辑,则会编辑具有 pk 19 个人资料的用户,这是一个错误还是我这边的错误?谢谢。
我的观点
class ProfilepdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
login_url = 'userlogin'
fields = ('age', 'location')
model = UserProfile
template_name = 'account/updateprofile.html'
success_message = "Your profile was successfully updated"
网址
path('account/dashboard/<int:pk>/updateprofile', views.ProfilepdateView.as_view(), name="updateprofile"),
【问题讨论】:
-
这似乎真的是关于网页设计和安全的问题,而不是关于编程的问题。
-
moonpig exposed customers data 就是这样,是功能还是错误取决于您的应用程序。
-
Django 不知道谁可以访问视图,这取决于你在视图中处理。如果您 edit 您的问题包括您的视图和 URL 模式,那么我们可以建议如何限制访问。
-
哦我明白了,我不知道,现在我明白了 django 不知道谁可以访问视图。