[jwt] JWT 토큰의 최대 크기는 얼마입니까?

최대 길이를 알아야합니다.

JSON 웹 토큰 (JWT)

사양에는 그것에 대한 정보가 없습니다. 길이 제한이 없습니까?



답변

말했듯이 RFC7519 ( https://tools.ietf.org/html/rfc7519 ) 또는 JWS 또는 JWE와 관련된 기타 RFC에 정의 된 최대 길이는 없습니다 .

JSON Serialized 형식 또는 JSON Flattened Serialized 형식을 사용하는 경우 제한이 없으며 제한을 정의 할 이유가 없습니다.

그러나 JSON Compact Serialized 형식 (가장 일반적인 형식)을 사용하는 경우 주로 웹 컨텍스트에서 사용되기 때문에 가능한 한 짧아야한다는 점을 명심해야합니다. 4kb JWT는 피해야 할 것입니다.

유용한 클레임 및 헤더 정보 만 저장하도록주의하십시오.


답변

나는 또한 이것을 찾으려고 노력하고 있습니다.

나는 말하고 싶습니다-그것이 7kb 미만 인지 확인하십시오 .

JWT는 사양 ( http://www.rfc-editor.org/rfc/rfc7519.txt )에 상한선을 정의하지 않지만 일부 작동 제한이 있습니다. JWT가 HTTP 헤더에 포함되어 있으므로 현재 대부분의 서버에서 상한 ( SO : Maximum on http header values )이 8K입니다.

여기에는 8kb 미만의 모든 요청 헤더가 포함 되며 7kb는 다른 헤더를위한 적절한 공간을 제공합니다. 이 제한에 대한 가장 큰 위험은 쿠키 (헤더로 전송되고 커질 수 있음)입니다.

암호화되고 base64로되어 있기 때문에 원래 json 문자열의 최소 33 % 낭비가 있으므로 최종 암호화 된 토큰의 길이를 확인하십시오.

마지막으로, 프록시 및 기타 네트워크 어플라이언스는 도중에 임의의 제한을 적용 할 수 있습니다.


답변

heroku를 사용할 때 헤더는 8k로 제한됩니다. jwt2에서 사용하는 데이터의 양에 따라 도달 할 수 있습니다. 요청이 너무 크면 노드 인스턴스에 영향을주지 않고 heroku 라우터는 API 레이어보다 먼저 드롭합니다.

들어오는 요청을 처리 할 때 라우터는 8KB 수신 버퍼를 설정하고 HTTP 요청 라인과 요청 헤더를 읽기 시작합니다. 각각의 길이는 최대 8KB 일 수 있지만 합쳐서 총 8KB 이상이 될 수 있습니다. 요청 라인 또는 8KB보다 긴 헤더 라인을 포함하는 요청은 발송되지 않고 라우터에 의해 삭제됩니다.

참조 : Heroku 제한


답변