Delen via


TAR-reading-API's controleren de controlesommen van headers bij het lezen

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.

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.
}

Betreffende API's