【问题标题】:Securing an API from other web apps保护 API 不受其他 Web 应用程序的影响
【发布时间】:2020-05-05 00:33:16
【问题描述】:

我有一个带有烧瓶 api 的反应网络应用程序(我曾经使用 express)。这个应用程序的产品是它显示的数据。我不希望其他人能够通过调用 api 轻松获取这些数据。

我想保护 api,使其只能由我的 react 应用程序访问,而不能由其他任何东西访问。我该怎么做?

【问题讨论】:

    标签: reactjs express security flask web-applications


    【解决方案1】:

    真正保护您的 API 的唯一方法是使用 Oauth2 之类的东西对您应用的用户进行身份验证,并使用诸如护照之类的东西在服务器端验证该凭据,并使授权在会话中过期。并使用 SSL,因此所有这些都无法通过协议分析器轻松看到。

    当然,您可以在应用程序中硬编码某种“密钥”,但任何想要它的人都会从您的应用程序中读取它,或者通过数据包记录器嗅探数据包,直到他们找到密钥。

    编辑:哦,作为登录授权的一部分,为他们提供一个唯一生成的“API-KEY”作为身份的一部分,这样您就可以在提交时验证他们,如果他们违反了您的信任,请标记他们服务器中的 API 密钥无效,因此他们不能再使用它们。

    【讨论】:

      【解决方案2】:

      首先,如果您的客户端代码和 API 服务器在不同的域或端口上运行,请在您的 API 服务器上配置 CORS 以仅接受来自客户端代码域的请求。其次,对合法用户进行身份验证,以便仅尊重授权的数据请求。有很多第三方库可以帮助进行身份验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-25
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2016-09-24
        相关资源
        最近更新 更多