Säilytä binääritiedoston tavut välityspalvelimen kautta ladattaessa
Säilytä tiedoston tavut ja tavupituudet välityspalvelimen kautta ladattaessa sen sijaan, että dekoodaisit artefaktin tekstinä ja rakentaisit sen uudelleen ASCII:lla.
Binääritiedoston pitäisi saapua HTTP-asiakkaalle tavuina. Sen lukeminen tekstinlukijalla ja tuloksena olevan merkkijonon uudelleenkoodaaminen ASCII:ksi voi korvata arvoja ennen kuin välityspalvelin vastaanottaa mitään. Se, että pieni tekstinäyte toimii, ei tee tästä polusta turvallista kuvalle, arkistolle tai asiakirjalle.
Korvaa olemassa olevassa .NET-latauspolussa tämä muunnos binäärisellä runkolähteellä:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);Vie sisältö sovelluksen määritetyn HTTP-latauksen kautta; katkelma muodostaa runkolähteen, kun taas olemassa oleva asiakas hallitsee edelleen menetelmää, kohdetta, välityspalvelinta ja elinkaarta.
Poista mikä tahansa Content-Length, joka on laskettu vanhan merkkijonon merkkimäärästä. Kenttä mittaa oketteja. Anna HTTP-kirjaston rakentaa kehystys runkoesityksestä sen sijaan, että yhdistäisit merkkimäärän eri tavoin koodattuun puskuriin.
Tahallisessa tekstilatauksessa valitse koodaus eksplisiittisesti ja johda tarvittava pituus lähetetyistä tavuista. Tätä tekstimuotopäätöstä ei pitäisi soveltaa mielivaltaisiin tiedostoihin.
Vertaa siirrettyä artefaktia luotettavaan odotusarvoon. HTTP:n onnistuminen vahvistaa, että lataustoiminto valmistui sillä kerroksella; se ei voi osoittaa, että aiempi tekstimuunnos säilytti alkuperäiset tavut.