【问题标题】:How to secure a REST Api on flask如何保护烧瓶上的 REST Api
【发布时间】:2018-06-02 05:01:54
【问题描述】:

我需要在我的应用上开发一个 Rest API(基于 Flask)

但我真的不知道应该如何保护它。

目前,我对来自浏览器的用户进行了正常的身份验证。 (使用会话等)

但是对于 API 用户,我应该在每次 API 请求时询问用户名/密码吗? 真的有保障吗? 我知道很多 Web API 使用令牌进行 API 调用,这是最好的方法吗?

在这种情况下,如何实现呢? (这不是我真正的专业领域..) 非常感谢

【问题讨论】:

  • 看看这里,它会对你有所帮助。您仍然可以将任何包用于 redis 会话以获得更好的性能,这只是基于令牌的身份验证的概念。 realpython.com/blog/python/…

标签: rest api security flask


【解决方案1】:

您应该使用token based authentication 技术来保护您的API,一旦您的用户登录,这个概念很简单,您的网站应该将其保存在某个地方,然后您将该令牌发回给您的用户。

对于您的 API 的每次调用,用户应在每个 API 请求中发送令牌,您应验证编码的令牌并拒绝或发回响应。

看看这里:https://realpython.com/blog/python/token-based-authentication-with-flask/

也检查一下http://flask-jwt-extended.readthedocs.io/en/latest/

为了获得更好的性能,您可以将会话令牌存储在 NOSQL 数据库中,例如 Redis

要支持使用社交媒体网站登录,您应该使用 OAuth,它的工作方式相同,只是它向客户端发送了几个令牌。

【讨论】:

  • 需要注意的是,使用 JWT 时,您根本不需要将令牌存储在后端。每个令牌都包含足够的信息来确定它是否有效且未被篡改,而无需在服务器上存储任何内容。
  • 我还想知道在 Flask Restful API 中实现安全性时我们如何使用 XSS?
猜你喜欢
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 2020-12-12
相关资源
最近更新 更多