使用Django网站在Safari中注销后,“后退”按钮仍然有效

2024-10-06 12:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django建立一个处理敏感数据的网站。我的网站有一个注销按钮,用于注销用户并将浏览器重定向到登录页面。使用Safari 14.1.1版时,我可以在注销后单击浏览器中的“后退”按钮,并返回到包含私人数据的上一页。据我所知,这似乎不是Django的问题,而是Safari存储内容,因此它不必向服务器发出另一个请求。我尝试了几种停止缓存的方法,包括:

@cache_control(no_cache=True, must_revalidate=True, no_store=True)
def some_method(request):
    #do some stuff

以及:

@never_cache
def some_method(request):
     #do some stuff

最后,我尝试使用以下命令手动更改请求头:

response["Cache-Control"] = "no-cache, no-store, must-revalidate"
response["Pragma"] = "no-cache"
response["Expires"] = "0"

另外,我的视图用@login_required(redirect_field_name="/somelink")注释。 我的一些研究表明,这可能不是缓存问题,而是浏览器历史问题,但我不确定。同样值得一提的是,Chrome没有给我任何问题,当我在注销后单击后退按钮时,它不会显示前一个用户正在查看的内容。在Safari中注销后如何禁用浏览器后退按钮?提前谢谢


Tags: djangostoreno用户truecache内容网站