то прекрасию, GO определяет его тип как float64
Токен разбираю через стандартный пакет jwt.ParseWithClaims и получаю в claims := jwt.MapClaims{}
userId мне требуется получить как строку.
Как оптимально это сделать? Чтобы не делать лишних конвертаций из типа в тип
стандартный пакет jwt - это какой?
https://github.com/dgrijalva/jwt-go это единственный, который рекомендуют безопасники
а в самом токене userId выглядит как строка или как число?
скажите, пожалуйста, а откуда такая информация?
стандарт простой, обосраться сложно, по факту уязвимостей может быть всего две: принимать algo: none и неправильно работать с полем exp
от самих безопасников из нескольких больших контор, с любой другой либой приложение просто не пройдет аудит
https://github.com/dgrijalva/jwt-go/issues/428
ага, а ещё там нет валидации клэймов iat и подобных
ну вот MapClaims просто из жсона значения берёт как есть и в interface{} пихает
https://github.com/dgrijalva/jwt-go/blob/dc14462fd58732591c7fa58cc8496d6824316a82/map_claims.go#L35
оно еще и тянется везде, из-за чего линтеры проверяющие уязвимые зависимости ругаются
о, и правда. я ориентировался на сравнение отсюда: https://jwt.io/ (внизу)
Я просто совсем на ВЫ пока с го. Как оптимально привести типы?
библиотечные функции в strconv
я почитал, косяк, конечно, что нет нормальной проверки aud, но получить подписанный токен всё равно где-то придется, это снижает северити с критикал до хай
Обсуждают сегодня