【发布时间】:2021-04-27 06:35:24
【问题描述】:
我想创建一个秘密 URL 来验证用户是否可以做某事,但它不会出现在浏览器历史记录中。
例如我认为这样的事情会起作用
- 特殊链接,例如
https://example.org/page#specialHashGivesAccess通过电子邮件发送给合适的人。为此目的,电子邮件被认为是足够安全的。 - 页面上运行的 Javascript 通过 ajax 将密钥发送到服务器,服务器对其进行检查并返回一个临时哈希值。
- Javascript 对带有临时哈希的页面执行
window.location.replace。 - 然后应用程序会检查临时哈希,如果正常则显示内容。
- 临时哈希会在短时间内过期,也可以手动过期。
- 原始特殊链接 (1) 不在浏览器历史记录中。
此外,执行此工作的脚本;应用程序脚本和 ajax 服务器是远程的。即生成example.org/page 的站点A 具有<script src="https://siteb.com/app.js"> 并且ajax 是使用CORS 完成的。
但是在我的测试中它似乎并不可靠,我在我的历史记录中找到了specialHashGivesAccess。
有没有办法做到这一点?
【问题讨论】:
-
您是通过电子邮件发送链接还是在网站本身的某个地方?
-
通过电子邮件。因此,某一组人会收到一个链接来使用。我们可以相信他们的电子邮件对于这些目的来说足够安全。显然,任何拥有第一个链接的人都可以访问;这是可以接受的。我只想拥有一个长期存在的安全链接(这些人重视便利性),但不希望将其隐藏在浏览器历史记录中,以免下一个用户访问浏览器。
-
你试过使用history.deleteUrl() 吗? Safari 和 Firefox Android 不支持它...
-
谢谢 Hoargarth,我确实需要一些跨浏览器的东西,但很高兴知道。
标签: javascript browser-history