我正在查看此页面的网络事件:https://helm.csod.com/ux/ats/careersite/4/home?c=helm&lang=de-DE 。
特别是在名称为“search”的发布请求中。它使用授权 token 。
目标:
我想了解浏览器(客户端)如何存储此授权 token 。我不需要获取数据或知道如何用 Selenium 或其他东西进行抓取。我只是对背后的机制感兴趣。
我尝试过的:
我在页面源中找到了 token :view-source: https://helm.csod.com/ux/ats/careersite/4/home?c=helm&lang=de-DE 。
- 似乎在
/player-career-site/1.15.4/pages/home.js
中创建了一个对象csod
。 - 然后 key 存储在
csod.context
中。 - 最后,调用
csod.player.initialize(csod.context)
。
不幸的是,我未能深入代码并找到这些函数,因为 initialize
的匹配太多,而我的 js 技能太差了。
作为存储,我只知道 Cookie。它可能会被转换/加密并存储在 cookie 中吗?但在添加到请求 header 之前,如何将其恢复为“原始” token ?
最佳答案
这似乎是一种 CSRF 预防方法。
token 是在后端使用 key 创建的,它将原始 key 存储在 session 中并将 token 发送到客户端。
客户端发送请求时,将token与数据一起作为header或与数据一起发布,然后后端获取session中存储的key,用相同的方法生成token并与发布的进行比较 token 。如果它们相等,则没有问题,授予访问权限。
无需恢复,因为您无法解密,具体取决于算法(sha256、md5 等)
浏览器不会这样做,因为它可以被操纵,这是没有意义的。
关于http - 浏览器如何存储/重新创建授权 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59023709/