Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De TarReader klasse valideert nu de controlesom van TAR-archiefvermeldingen tijdens het leesproces. Als de controlesom van een vermelding ongeldig is, TarReader genereert u een InvalidDataException. Deze wijziging verbetert de gegevensintegriteit door ervoor te zorgen dat beschadigde of gemanipuleerde TAR-bestanden worden gedetecteerd en gemarkeerd tijdens de verwerking.
Geïntroduceerde versie
.NET 11 Preview 1
Vorig gedrag
Toen er eerder een TAR-archief met een ongeldige controlesom werd gelezen, negeerde TarReader de controlesommismatch en verwerkte het archief zonder een uitzondering te genereren.
Voorbeeldcode:
using System.Formats.Tar;
using System.IO;
using var stream = File.OpenRead("bad-cksum.tar");
using var reader = new TarReader(stream);
while (reader.GetNextEntry() is not null)
{
// Process entries, even if the checksum is invalid.
}
Als het TAR-bestand bad-cksum.tar een vermelding met een ongeldige controlesom bevat, zou de code de vermelding verwerken zonder enige indicatie van het probleem.
Nieuw gedrag
Vanaf .NET 11, wanneer een TAR-archief met een ongeldige controlesom wordt gelezen, wordt InvalidDataException door TarReader opgeworpen en stopt het de verwerking van het archief. Het uitzonderingsbericht geeft de validatiefout van de controlesom aan.
Type van brekende verandering
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Deze wijziging is geïntroduceerd om de betrouwbaarheid en beveiliging van de System.Formats.Tar bibliotheek te verbeteren. Door controlesommen te valideren, TarReader kunt u het gebruik van beschadigde of gemanipuleerde TAR-bestanden detecteren en voorkomen, zodat alleen geldige gegevens worden verwerkt. Zie dotnet/runtime#118577 en dotnet/runtime#117455 voor meer informatie.
Aanbevolen actie
Als uw toepassing afhankelijk is van het TarReader verwerken van TAR-archieven:
- Werk uw code bij om de InvalidDataException fout af te handelen die kan optreden wanneer een controlesomvalidatie mislukt.
- Zorg ervoor dat de TAR-bestanden die worden verwerkt geldig zijn en de juiste controlesommen hebben. Als er controlesomfouten optreden, controleert u de integriteit van de TAR-bronbestanden.
- Als u TAR-bestanden met ongeldige controlesommen voor specifieke scenario's wilt verwerken, kunt u overwegen om aangepaste foutafhandeling te implementeren of de bestanden vooraf te verwerken om de controlesommen te corrigeren.
Voorbeeld bijgewerkt:
using System.Formats.Tar;
using System.IO;
try
{
using var stream = File.OpenRead("archive.tar");
using var reader = new TarReader(stream);
while (reader.GetNextEntry() is not null)
{
// Process entries.
}
}
catch (InvalidDataException ex)
{
Console.WriteLine($"Error reading TAR archive: {ex.Message}");
// Handle invalid checksum scenario.
}