2012-06-22 15 views
5

Powiel możliwe:
How can you encode to Base64 using Javascript?Jak wysyłać wielopiętrowe wieloformatowe formularze jako base64?

Mam aplikacji internetowych w oparciu o Java, Wicket i jQuery, który posiada funkcję, aby umożliwić użytkownikom przesyłać pliki (obrazy, pliki PDF, RTF), poprzez multipart/form-data.

Nasza infrastruktura bezpieczeństwa sieci filtruje cały ruch http w celu pobrania potencjalnie szkodliwej zawartości, np. Ataki XSS, iniekcje SQL, przepełnienia buforów itp.

Filtr nie rozróżnia normalnych pól wprowadzania tekstu i danych pliku, więc odbiera fałszywe alarmy z wielu przesłanych plików binarnych, uniemożliwiając przesłanie tych plików. Nie mogę zmienić polityki bezpieczeństwa.

Wygląda na to, że najlepiej będzie, jeśli dane pliku zostaną zakodowane w formacie base-64, tak aby były wysyłane z kodowaniem Content-Transfer-Encoding: base64, podobnie jak robią to klienci poczty e-mail.

Czy istnieje sposób na przekierowanie przeglądarki na plik binarny w formacie base64 lub inny format inny niż binarny?

Jeśli nie, czy można to zrobić ręcznie za pomocą JavaScript?

+4

Dlaczego moje pytanie zostało zamknięte jako duplikat? Nie pytałem "Jak zrobić kodowanie base64 za pomocą JavaScript". Zapytałem, czy istnieje sposób kodowania danych binarnych w ** jakimś formacie znaków, np. Base64 ** w kontekście przesyłania formularza, czy to automatycznie czy z pomocą JavaScript. Nie znalazłem tego pytania skierowanego gdzie indziej na stackoverflow. – David

+3

Zgadzam się, nie był to dokładny duplikat. – biziclop

Odpowiedz

2

Wydaje się, że można ustawić Content-Transfer-Encoding: base64
cytat z W3C:

Każda część może być kodowany i „Content-Transfer-Encoding” header dostarczane jeżeli wartość tej części nie jest zgodny z default (7bit) kodowanie

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

Pod Twój Java Web Server w użyciu nie ingore parametr Content-Transfer-Encoding.

+1

Myślę, że obecność "Content-Transfer-Encoding: base64" wskazywałaby serwerowi, że przeglądarka rzeczywiście przekonwertowała dane binarne na base64 dla transportu. Nie jest ustawiony przez programistę, ale jest odpowiedzią przeglądarki na tag wejściowy pliku. Ale w jaki sposób można wykonać przeglądarkę do kodowania base64? – David

+2

lub możesz zrobić kodowanie base64 siebie, istnieje kilka wtyczek jQuery tam: https://github.com/carlo/jquery-base64 – didxga

Powiązane problemy