【问题标题】:Checking for JWT ALG检查 JWT ALG
【发布时间】:2020-11-11 20:22:00
【问题描述】:

我正在使用 flask-jwt-extended 库进行身份验证,一切正常,但我想检查是否有人使用 ALG = none 发送了经过操纵的 JWT 令牌,因为这是用于欺骗服务器的已知漏洞点。

我查看了文档,但没有找到哪个选项可以让我检查 alg 在所有请求中收到的内容。

谢谢。

【问题讨论】:

    标签: flask jwt flask-jwt-extended


    【解决方案1】:

    Flask-JWT-Extended 已经为您处理了这个问题。它会根据app.config['JWT_DECODE_ALGORITHMS']app.config['JWT_ALGORITHM'] 这里 (https://github.com/vimalloc/flask-jwt-extended/blob/1fec4dc22fe97fd3bf579548079543a8c0b61e3e/flask_jwt_extended/utils.py#L111) 中定义的预期算法检查每个令牌,以避免此类攻击。

    【讨论】:

    • 嘿!感谢您的澄清。但是,如果我想记录使用 none alg 发送的尝试请求(现在只是一个简单的打印到控制台),我将如何解决这个问题?我必须更改源吗?谢谢!
    • 任何带有none 的东西都将被踢出受jwt 保护的端点(jwt_requiredjwt_optional 等)。如果你想记录这个,你需要手动从 headers/cookies/whatver 中获取编码的令牌,并手动将 alg 去掉。可能在@app.before_request
    猜你喜欢
    • 2021-01-24
    • 2016-12-16
    • 2021-06-24
    • 2020-11-27
    • 2020-07-26
    • 2020-08-19
    • 2020-02-19
    • 2020-07-28
    • 2018-06-19
    相关资源
    最近更新 更多