【发布时间】:2020-05-05 00:33:16
【问题描述】:
我有一个带有烧瓶 api 的反应网络应用程序(我曾经使用 express)。这个应用程序的产品是它显示的数据。我不希望其他人能够通过调用 api 轻松获取这些数据。
我想保护 api,使其只能由我的 react 应用程序访问,而不能由其他任何东西访问。我该怎么做?
【问题讨论】:
标签: reactjs express security flask web-applications
我有一个带有烧瓶 api 的反应网络应用程序(我曾经使用 express)。这个应用程序的产品是它显示的数据。我不希望其他人能够通过调用 api 轻松获取这些数据。
我想保护 api,使其只能由我的 react 应用程序访问,而不能由其他任何东西访问。我该怎么做?
【问题讨论】:
标签: reactjs express security flask web-applications
真正保护您的 API 的唯一方法是使用 Oauth2 之类的东西对您应用的用户进行身份验证,并使用诸如护照之类的东西在服务器端验证该凭据,并使授权在会话中过期。并使用 SSL,因此所有这些都无法通过协议分析器轻松看到。
当然,您可以在应用程序中硬编码某种“密钥”,但任何想要它的人都会从您的应用程序中读取它,或者通过数据包记录器嗅探数据包,直到他们找到密钥。
编辑:哦,作为登录授权的一部分,为他们提供一个唯一生成的“API-KEY”作为身份的一部分,这样您就可以在提交时验证他们,如果他们违反了您的信任,请标记他们服务器中的 API 密钥无效,因此他们不能再使用它们。
【讨论】:
首先,如果您的客户端代码和 API 服务器在不同的域或端口上运行,请在您的 API 服务器上配置 CORS 以仅接受来自客户端代码域的请求。其次,对合法用户进行身份验证,以便仅尊重授权的数据请求。有很多第三方库可以帮助进行身份验证。
【讨论】: