강력한 암호 알고리즘으로 서명되지 않았거나 전혀 서명되지 않은 경우 공격자는 JSON 웹 토큰(JWT)을 위조하여 사용자 신원을 사칭할 수 있습니다.
토큰의 유효성을 서명하거나 검증하는데 아무 알고리즘도 사용하지 마세요. 이전에 서명을 검증하지 않은 토큰은 사용하지 마세요.
규칙을 어긴 코드
For pyjwt module:
jwt.decode(token, verify = False) # 규칙을 어긴 코드
jwt.decode(token, key, options={"verify_signature": False}) # 규칙을 어긴 코드
For python_jwt module:
jwt.process_jwt(token) # 규칙을 어긴 코드
규칙을 준수한 해결책
For pyjwt module:
jwt.decode(token, key, algo)
For python_jwt module:
jwt.process_jwt(token) # 이어서 verify_jwt()로 검증하기 때문에 규칙을 준수한 코드
jwt.verify_jwt(token, key, algo)
같이보면 좋은 자료
- OWASP Top 10 2021 Category A2 - 암호화 실패
- OWASP Top 10 2017 Category A3 - 민감한 데이터 노출
-
MITRE, CWE-347 - 암호화 서명의 부적절한 검증
If you like SONARKUBE, don’t forget to give me a star.