Behou binêre lêerbyte wanneer jy deur 'n proxy oplaai
Behou lêerbyte en bytelengtes wanneer jy deur 'n proxy oplaai, in plaas daarvan om die artefak as teks te dekodeer en met ASCII te herbou.
'n Binêre lêer behoort as bytes by die HTTP-kliënt uit te kom. Om dit met 'n teksleser te lees en die resulterende string weer as ASCII te enkodeer, kan waardes vervang voordat die proxy enigiets ontvang. Die feit dat 'n klein teksmonster werk, maak nie daardie pad veilig vir 'n beeld, argief of dokument nie.
In 'n bestaande .NET-oplaaipad, vervang daardie omskakeling met 'n binêre liggaamsbron:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);Gee die inhoud deur die toepassing se gekonfigureerde HTTP-oplaai; die fragment vestig die liggaamsbron, terwyl die bestaande kliënt steeds die metode, bestemming, proxy en leeftyd hantering besit.
Verwyder enige Content-Length wat uit die ou string se karaktertelling bereken is. Die veld meet oktette. Laat die HTTP-biblioteek die raamwerk uit die liggaamsvoorstelling bou in plaas daarvan om 'n karaktertelling met 'n anders geënkodeerde buffer te paar.
Vir 'n doelbewuste teksoplaai, kies die enkodering eksplisiet en lei enige vereiste lengte uit die bytes wat gestuur word. Daardie teksformaat-besluit moet nie op willekeurige lêers toegepas word nie.
Vergelyk die oorgedraagde artefak met 'n betroubare verwagte waarde. HTTP-sukses bevestig dat 'n oplaai-bewerking op daardie laag voltooi is; dit kan nie wys dat 'n vorige teksomskakeling die oorspronklike bytes behou het nie.