使用HTTP摘要身份验证保护REST端点 我正在使用Flask在Python中开发一个项目,该项目的端点为 另外,我希望REST端点在执行方法之前经过身份验证 我对此搜索了很多,发现这正是我可能需要的(我现在还不确定)

使用HTTP摘要身份验证保护REST端点 我正在使用Flask在Python中开发一个项目,该项目的端点为 另外,我希望REST端点在执行方法之前经过身份验证 我对此搜索了很多,发现这正是我可能需要的(我现在还不确定),python,security,rest,authentication,flask,Python,Security,Rest,Authentication,Flask,问题 如何使用python和flask实现这样的安全模式?我能看到并从中学习到什么样的例子吗 我不希望以明文形式传递密码,使用令牌是一个更好的主意,所以考虑HTTP摘要身份验证是一个正确的选择吗 你们还有什么要推荐的吗 我希望我的服务器是无状态的,并且不在服务器端存储任何会话 对于安全存在扩展:和 无状态服务不存储会话数据,这意味着您必须为每个请求发送凭据 您可以使用普通登录名和密码,也可以使用哈希函数 您可以在用户端存储密钥,并生成/加密普通数据,如登录、密码和其他请求数据。这可以保护您免

问题

  • 如何使用python和flask实现这样的安全模式?我能看到并从中学习到什么样的例子吗
  • 我不希望以明文形式传递密码,使用令牌是一个更好的主意,所以考虑HTTP摘要身份验证是一个正确的选择吗
  • 你们还有什么要推荐的吗
我希望我的服务器是无状态的,并且不在服务器端存储任何会话

对于安全存在扩展:和

无状态服务不存储会话数据,这意味着您必须为每个请求发送凭据

  • 您可以使用普通登录名和密码,也可以使用哈希函数
  • 您可以在用户端存储密钥,并生成/加密普通数据,如登录、密码和其他请求数据。这可以保护您免受其他请求的影响,但不能保护您免受某些请求的影响,但您也可以添加时间戳之类的内容并拒绝任何旧请求,或者添加唯一的请求id并拒绝某些请求
  • 您可以使用更有效的方式,如https

  • 有状态服务还可以获取普通登录名和密码进行身份验证,并生成令牌进行授权,这些令牌随每个请求一起发送。

    无状态服务器是什么意思?如果您想使用身份验证,那么显然您必须将凭据存储在服务器端的某个位置。从这个意义上讲,会话只是另一层凭证。事实上,使用HTTP,要拥有一个有状态的服务器有点困难(如果可能的话)。
    @app.route(/transaction)
    def get(request):
      ...
    
    @app.route(/transaction)
    def post(request):
      ...