sa1*_*125 5 security django django-authentication
我正在玩 django 并构建了一个小应用程序,用户可以在其中通过 url http:///localhost:8000/username/info/访问他们的信息。我想添加通过http:///localhost:8000/username/info/edit/编辑该信息的功能,但还想确保当前登录的用户(使用 django.contrib.auth)只能访问他的信息。我通过在视图中执行以下操作来完成此操作(视图 args 中的用户名是从 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
Run Code Online (Sandbox Code Playgroud)
所以,显然,我不希望用户“johnny”通过简单地将他的浏览器指向/jimmy/info/edit/来编辑属于用户“jimmy”的信息。以上工作,但我担心的是,就安全而言,我在这里遗漏了一些东西。这是解决这个问题的正确方法吗?谢谢。
这应该适用于您想要做的事情,而不会出现任何明显的安全风险。
但是,如果其他人无法在该位置至少看到个人资料或其他内容,为什么要显示他们的用户名呢?这不是更像一个“帐户”页面吗?然后你就不会检查 url 中的用户名,你可以访问的唯一 url 是帐户,它只会加载登录用户的信息。
| 归档时间: |
|
| 查看次数: |
2361 次 |
| 最近记录: |