一个不对的思路: js, cache, 浏览器后退按钮

最近在看一个问题: AppScan 扫出了一个浏览器中的cache可能不安全的问题。解决方法就是disable cache.

response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", -1);


带来了一个新的问题,就是当用户点击后退按钮时,会链接失败,必须重新点刷新按钮去server拿数据。在试图解决这个问题时,有几个错误的思路,很是走了弯路。记下来长个记性:


1。 试图通过js去捕捉浏览器的后退事件。事实上是不可能的,js 作为一个脚本文件只可以捕捉网页事件,或者模拟后退行为。浏览器是一个本地客户端,我们无法通过js去操作一个本地客户端软件。

2。 试图通过 js 获取history的url. 事实上也是不可以的。 js在设计的时候,由于security的考虑,尽管有window.history对象,但是无法通过该对象去获取历史的url. 只能history.forward或history.back.

其实我个人认为,同时达到disable cahe 和 后退按钮正常工作本身就是矛盾的。目前这个问题的初步解决方法是恢复cache,当然前提是我们检查了cache,里面没有敏感的信息。

教训就是:在禁用cache时一定要考虑对后退功能的影响

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值