0

我正在使用 django 来管理一个网站,其中像 post id、user id 这样的 id 以清晰的方式传递。例如,我可以拥有 /posts/1、/posts/2/

即使我检查当前用户是否可以阅读相关帖子,传递这样的参数是否真的安全,或者我应该执行 /posts/lkjfekj87Dokdz98/ 之类的操作,例如 /posts/1/ ?

使用 /post/1/ 调用的详细视图示例

class DetailView(generic.DetailView):
    model = Post

    def get_context_data(self, **kwargs):
        context = super(generic.DetailView, self).get_context_data(**kwargs)
        if context['post'] not in self.request.user.allowed_post:
            raise PermissionDenied
        return context
4

1 回答 1

0

我找到了我的答案。这种技术被称为混淆。例如,它可以与https://pypi.python.org/pypi/django-unfriendly一起使用

于 2013-09-03T19:26:11.087 回答