Open stacklens opened 4 years ago
旧评论区读者评论集中帖:
Q:如果在模板中已经进行了鉴权,用户不匹配或者未登录就不显示修改及删除文章按钮,那在视图里做不做鉴权应该没影响了吧,哪个用户登录的信息又不同通过url虚造,url里只是显示哪篇文章而已。是不是我理解有误。
A:不是这样的。重要的操作必须在后端鉴权,即使模板中已经鉴权过了。否则“聪明的坏用户”可以直接通过 url 操作数据库。
Q:博主 你好,我想询问一下,再文章的详情页面detail.html文件中,使用article.author==user 就可以判断是否是用户本人 user 是怎么传递的?
A:Django 默认配置中的中间件帮你设置的。
T:小白打卡:
def article_detail(request, id):
article = ArticlePost.objects.get(id=id)
if request.user != article.author:
article.total_views += 1
article.save(update_fields=['total_views'])
article.body = markdown.markdown(article.body, extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
])
context = {'article': article}
return render(request, 'article/detail.html', context)
这样的话就可以保证作者每次修改和阅读不会给自己添加阅读量啦
如果有“坏用户”直接输入url地址来使坏,能否举例来说明下。
如果有“坏用户”直接输入url地址来使坏,能否举例来说明下。
如果有“坏用户”直接输入url地址来使坏,能否举例来说明下。
如果有“坏用户”直接输入url地址来使坏,能否举例来说明下。
就是直接在浏览器里输入地址啊。没有 UI 入口也一样的
大概想了一下,先得搞定CSRF,这个有工具,然后我得猜到你用这个/article_safe_delete/15/路径的POST方式,然后我就可以删除了,所以还是严谨点,有利于安全
大概想了一下,先得搞定CSRF,这个有工具,然后我得猜到你用这个/article_safe_delete/15/路径的POST方式,然后我就可以删除了,所以还是严谨点,有利于安全
什么工具可以搞定 Django 的 csrftoken?
https://www.dusaiphoto.com/article/45/