Autodesk Forge客户端如何彻底隐藏接口返回的access token?
关于Autodesk Forge Access Token前端隐藏的问题解答
核心结论
没有办法彻底隐藏前端获取到的access token。
浏览器本身属于公开运行环境,所有发送到前端的网络响应、内存存储的内容,都可以通过开发者工具被查看到,即使你做了接口加密、代码混淆,也只是提升非法获取的门槛,无法从根本上避免token被拿到。
推荐安全优化方案
你可以通过以下方式降低token泄露后的风险,或者从架构层面避免token下发到前端:
- 严格限制token的权限与有效期:仅给2-legged token开放最低必要权限(例如仅开放
viewables:read权限,不开放模型修改、删除等高危权限),同时将token有效期设置为15~60分钟的短周期,即使token被非法获取,也无法长期使用或造成高危操作。 - 给token获取接口加访问校验:不要让接口对外无限制开放,可结合业务侧的用户登录态校验、合法域名校验规则,仅允许你的业务场景下的合法用户请求获取token。
- 避免token持久化存储:前端拿到token后仅存于临时内存变量中,不要存入localStorage、sessionStorage、cookie等持久化存储位置,页面关闭后token会自动释放,减少泄露路径。
- (最高安全方案)后端代理所有Forge请求:调整业务架构,前端所有需要调用Autodesk接口、携带token的请求,全部转发到你自己的后端,由后端携带token请求Autodesk接口后再将结果返回给前端,整个流程token完全不会下发到前端,从根源上避免token泄露。
内容的提问来源于stack exchange,提问作者itsmejohn
相关产品推荐
相关产品推荐

