【发布时间】:2020-05-10 11:20:36
【问题描述】:
我有一个这样的网址:
https://localhost:8081/test.php#param1=test¶m2=sensitivedata
“param2”参数有点敏感,所以我不想让它出现在浏览器的历史记录中。
我正在使用以下代码:
window.location.replace("#");
这有效地从 Chrome 中的用户历史记录中删除了数据,但数据仍保留在 Firefox 中。 有没有办法在 Firefox 中做到这一点?
我试过了
history.replaceState(null, null, ' ');
但这不适用于 Chrome 或 Firefox,数据仍保留在用户历史记录中。
提前致谢
【问题讨论】:
-
只需向应用中的“安全”路由发出请求,并在后台处理逻辑
-
用户的入口点必须是通过邮件发送给用户的单个 URL,例如“重置密码”链接,不同之处在于令牌不会过期,所以我不希望它如果可能的话,留在历史中。
-
不是答案,但您应该尽量避免使用 GET 请求发送敏感数据,尤其是当您不使用 HTTPS 时。请改用 POST。
-
@Noodles 是的,我知道,但情况就是这样(见上面的评论)。关于https,当然最终版本会有https。
-
总的来说,我认为您不应该将敏感数据发送到浏览器。假设您发送的所有内容(包括 URL 中的参数)都将被保存并再次播放。如果您将令牌放在头条新闻中,请在必要时使用后端来验证和过期它们。相信浏览器历史记录会被删除是非常不安全的。
标签: javascript google-chrome firefox browser-history