【问题标题】:Securing API calls without token无需令牌即可保护 API 调用
【发布时间】:2018-12-02 10:24:17
【问题描述】:

我正在使用 PHP 构建一个应用程序和一个 API 端点(我知道你在想什么!)。我的问题是,如果我在第一次打开应用程序时向用户询问用户名和密码,因为我无法在本地存储这些详细信息,因为它们可能会被泄露。我会通过 Post 请求将这些发送到服务器,然后根据用户是否正确生成令牌。得到响应后,我必须在本地存储这个令牌吗? 是的!。令牌已过期。令牌过期后,我不想向用户询问他们的姓名和密码,但想访问仍然以该用户身份进行身份验证的 API。我将如何做到这一点?

如果我使用 Oauth,它仍然是相同的程序,对吗?我应该在本地存储一些东西。这不会被妥协吗?我很困惑。

其他应用程序如何工作。我敢肯定他们在后台做某事。他们只要求我们提供一次凭据,并且所有后续 API 调用都将受到保护。在那种情况下令牌不会过期还是什么?

我可以在不在本地存储任何内容的情况下保护 API 调用吗?我不希望从应用程序以外的任何地方访问 API。

【问题讨论】:

    标签: javascript java php android css


    【解决方案1】:

    使用 android SharedPreferences。它应该是非常安全的,除非你故意暴露它,例如它可以通过在清单中缺少 (android:exported="false") 的导出内容提供程序访问。您也可以使用 sqlite,但对于一两行数据使用 db 表是没有意义的。您还可以加密用户名和密码,以增加一个安全层来保护 root 用户。
    此外,为了保护网络中的数据,您应该在后端使用 ssl,这样没有人可以嗅探凭据。

    【讨论】:

    • SSL 非常安全,除非使用中间人攻击。加密需要将密钥存储在某个地方,因此没有什么是真正安全的。我想关键是让它变得更加困难,但找到完美的解决方案就像连续中了 5 次彩票一样。从本质上讲,Oauth 非常安全,只是不是防弹的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2017-04-20
    相关资源
    最近更新 更多