Saglabājiet binārā faila baitus, augšupielādējot caur starpniekserveri
Saglabājiet faila baitus un baitu garumus, augšupielādējot caur starpniekserveri, tā vietā lai atšifrētu artefaktu kā tekstu un pārbūvētu to ar ASCII.
Bināram failam HTTP klientā jānonāk kā baitiem. Tā lasīšana ar teksta lasītāju un iegūtās virknes pārkodēšana ASCII var aizstāt vērtības, pirms starpniekserveris vispār kaut ko saņem. Mazs teksta paraugs, kas strādā, nepadara šo ceļu drošu attēlam, arhīvam vai dokumentam.
Esošajā .NET augšupielādes ceļā aizstājiet šo konvertēšanu ar bināru satura avotu:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);
Nododiet saturu caur lietotnes konfigurēto HTTP augšupielādi; fragments izveido satura avotu, bet esošais klients joprojām atbild par metodi, galamērķi, starpniekserveri un dzīves ciklu.
Noņemiet jebkuru Content-Length, kas aprēķināts no vecās virknes rakstzīmju skaita. Šis lauks mēra oktetos. Ļaujiet HTTP bibliotēkai veidot ietvaru no satura attēlojuma, nevis savienot rakstzīmju skaitu ar citādi kodētu buferi.
Apzinātai teksta augšupielādei izvēlieties kodējumu skaidri un jebkuru nepieciešamo garumu atvasiniet no nosūtītajiem baitiem. Šis teksta formāta lēmums nav jāpiemēro patvaļīgiem failiem.
Salīdziniet pārsūtīto artefaktu ar uzticamu gaidāmo vērtību. HTTP panākumi apstiprina, ka augšupielādes darbība šajā slānī ir pabeigta; tie nevar parādīt, ka iepriekšēja teksta konvertēšana saglabāja oriģinālos baitus.