Proxy Üzerinden Yüklerken İkili Dosya Baytlarını Koruyun
Bir proxy üzerinden yüklerken dosya baytlarını ve bayt uzunluklarını koruyun; artefaktı metin olarak çözüp ASCII ile yeniden oluşturmak yerine.
İkili bir dosya HTTP istemcisine bayt olarak ulaşmalıdır. Onu bir metin okuyucuyla okuyup elde edilen dizeyi ASCII olarak yeniden kodlamak, proxy herhangi bir şey almadan önce değerleri değiştirebilir. Küçük bir metin örneğinin çalışması, bu yolu bir görüntü, arşiv veya belge için güvenli kılmaz.
Mevcut bir .NET yükleme yolunda bu dönüşümü ikili gövde kaynağıyla değiştirin:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);
İçeriği uygulamanın yapılandırılmış HTTP yüklemesinden geçirin; bu parça gövde kaynağını oluştururken mevcut istemci yöntemi, hedefi, proxy'yi ve yaşam süresi yönetimini hâlâ üstlenir.
Eski dizenin karakter sayısından hesaplanan herhangi bir Content-Length değerini kaldırın. Bu alan oktet cinsinden ölçer. HTTP kitaplığının çerçevelemeyi gövde gösteriminden oluşturmasına izin verin; karakter sayısını farklı kodlanmış bir arabellekle eşleştirmeyin.
Bilinçli bir metin yüklemesi için kodlamayı açıkça seçin ve gereken uzunluğu gönderilen baytlardan türetin. Bu metin biçimi kararı rastgele dosyalara uygulanmamalıdır.
Aktarılan artefaktı güvenilir bir beklenen değerle karşılaştırın. HTTP başarısı, bir yükleme işleminin o katmanda tamamlandığını doğrular; önceki bir metin dönüşümünün özgün baytları koruduğunu gösteremez.