【问题标题】:Shopify app access token - how to make it more secure?Shopify 应用访问令牌 - 如何使其更安全?
【发布时间】:2019-10-11 20:11:38
【问题描述】:

当店主安装我的应用程序时,我将访问令牌保存到数据库中以备后用。从存储中获取访问令牌是一项巨大的安全责任,因为拥有这些令牌的任何人都可以从任何域/地址修改存储,没有 IP 或域锁定。

我可以使用什么方法来提高安全性?我正在考虑离线保存令牌,然后仅在需要时上传(以防我需要为所有商店进行一些全局更新),然后再次删除它。如果商家在管理员中访问应用程序配置,我只需将其保存到会话中。有没有更好的方法?

【问题讨论】:

    标签: shopify access-token shopify-app


    【解决方案1】:

    好问题。

    我也将它们保存在数据库中,但我使用与 Shopify 应用密码不同的密钥对其进行编码。这样,即使有人因为某些后门入口而可以访问数据库,他也无法使用它们。也就是说,如果有人可以访问代码,他将能够弄清楚如何解密它,因为他可以访问密钥。

    也就是说,在显示来自服务器的任何响应之前,我会确保每个请求都经过身份验证。由于我使用 NodeJS 作为后端,因此我确保没有可以从不同商店访问或修改的全局变量。一切都整齐地划分在单独的函数中,因此会话的范围仅限于当前商店,并且没有其他人能够弄脏其他商店的会话。

    此外,我确保当客户卸载他的应用程序时会触发一个 webhook,以便从我的数据库中清除任何重新评价他的商店的信息。

    我知道有些人为此使用会话(在线方法),但他们提出了我不喜欢的其他问题,所以我坚持使用数据库(离线),因为这是访问应用程序而不是多次重定向的更快方法为了保存会话。

    至于建议,我可以给你一些我在构建一些基本应用程序的过程中学到的技巧。 (无论如何我都不是这方面的专家)

    • 在涉及敏感信息时不要依赖任何 cookie
    • 验证来自前端的每个请求
    • 不要信任用户并验证来自前端的任何输入
    • 不要使您的设置过于复杂,虽然具有高安全性是好的,但如果它使您的应用程序对用户来说速度变慢并且您会失去客户,那就不好了
    • 寻找其他可立即使用的流行解决方案,以引导您找到正确的路径
    • 不要贪婪地使用应用范围,只请求应用所需的范围
    • 记得在可能的情况下自己清理,但不要过度清理(太多的应用程序修改客户的代码并破坏它只是为了防止以后清理它)示例使用 ScriptTag API 而不是液体sn-p 使用资产 API。如果您必须使用资产 API,请仅添加您知道不会破坏网站的部分。如果您使用 var,则创建变量是可以的,如果站点支持 IE11,则使用 constlet 创建变量不行,或者使用 vanilla JS 可以,但使用 jQuery,但不知道该站点是否有全局安装不行。

    可以在此处查看有关此问题的更多见解:

    https://help.shopify.com/en/api/getting-started/authentication/oauth/api-access-modes https://community.shopify.com/c/Shopify-APIs-SDKs/Best-way-to-store-shops-that-have-installed-my-app-and-their/m-p/402972

    【讨论】:

    • 这确实是一些非常有用的信息,谢谢!
    猜你喜欢
    • 2021-02-16
    • 2020-11-17
    • 2015-05-06
    • 2014-10-30
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多