UTF-8 безопасен для http? - PullRequest
       20

UTF-8 безопасен для http?

1 голос
/ 08 октября 2010

если у меня есть данные в кодировке utf-8, безопасно ли отправлять их в теле HTTP? Дело в том, что данные utf-8 могут включать управляющие символы, включая нулевой символ (двоичный ноль), что, конечно, не разрешено http RFC. Так что же делать с такими данными? Кодировать их с base64?

С другой стороны, данные, которые у меня есть в utf-8 - это XML, а спецификация XML запрещает использование специальных символов (http://www.w3.org/TR/2006/REC-xml-20060816/#charsets)...

Так что я предполагаю, что utf-8 небезопасен, но XML в utf-8 безопасен и может быть непосредственно встроен в тело http, например. в составном теле MIME без необходимости делать что-то вроде кодируемой для печати кодировки.

BR Sten

Ответы [ 2 ]

5 голосов
/ 08 октября 2010

HTTP позволяет отправлять данные ARBITRARY.Так да;UTF-8 безопасен для HTTP, но с одной стороны;0x00 нигде не является "безопасным".Как HTTP-запрос, так и тело ответа имеют методы для работы с произвольными данными, как и MIME (который обычно инкапсулирует тела HTTP POST), а именно, Length: -header.

Нет управляющего символа, который может вызвать совместимый HTTPреализация, предполагающая, что тело выполнено, если оно не достигло длины:.

2 голосов
/ 08 октября 2010

Тела HTTP-сообщения могут содержать произвольные данные (как указал Виллихем).

Кроме того, в HTTP есть кодировка для печати в кавычках, и при этом вам не нужно составное тело.

Как вы думаете, изображения в Интернете работают? : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...