Voltar ao catalogoP-16
TimeZoneInfo usa Windows timezone ID em container Linux
MediumAchado ConfirmadoArquiteturaRodada 4
Evidencia
`aspnet-core/src/cargo_fleet.Application/Utilities/TimeZoneConverter.cs` — `TimeZoneInfo.FindSystemTimeZoneById("E. South America Standard Time")`.Impacto Tecnico
O metodo GetBrasiliaTimeNow() pode lancar TimeZoneNotFoundException em ambiente Linux. Todas as datas podem estar em UTC ou causar crash loop.
Impacto de Negocio
Datas de ofertas, registros e notificacoes podem estar com fuso horario incorreto em producao.
Recomendacao
Usar o pacote NuGet TimeZoneConverter ou IANA ID "America/Sao_Paulo" diretamente.
Arquivos Afetados
aspnet-core/src/cargo_fleet.Application/Utilities/TimeZoneConverter.cs
Acoes Relacionadas
{
"id": "P-16",
"title": "TimeZoneInfo usa Windows timezone ID em container Linux",
"severity": "Medium",
"type": "achado confirmado",
"category": "architecture",
"description": "Usa `TimeZoneInfo.FindSystemTimeZoneById(\"E. South America Standard Time\")` que e um ID Windows. Em containers Linux, o sistema usa IDs IANA.",
"evidence": "`aspnet-core/src/cargo_fleet.Application/Utilities/TimeZoneConverter.cs` — `TimeZoneInfo.FindSystemTimeZoneById(\"E. South America Standard Time\")`.",
"technicalImpact": "O metodo `GetBrasiliaTimeNow()` pode lancar `TimeZoneNotFoundException` em ambiente Linux. Todas as datas podem estar em UTC ou causar crash loop.",
"businessImpact": "Datas de ofertas, registros e notificacoes podem estar com fuso horario incorreto em producao.",
"recommendation": "Usar o pacote NuGet `TimeZoneConverter` ou IANA ID `\"America/Sao_Paulo\"` diretamente.",
"files": [
"aspnet-core/src/cargo_fleet.Application/Utilities/TimeZoneConverter.cs"
],
"pass": 4,
"relatedActions": [
"ACT-7.3.6"
]
}
Descricao
Usa
TimeZoneInfo.FindSystemTimeZoneById("E. South America Standard Time")que e um ID Windows. Em containers Linux, o sistema usa IDs IANA.