Генерация многослойной границы

Я пишу сценарий, который загружает файл на cgi сценарий, который ожидает многослойный запрос, такой как форма на странице HTML. boundary уникальный маркер, который аннотирует содержание файла в теле запроса. Вот тело в качестве примера:

--BOUNDARY
Content-Disposition: form-data; name="paramname"; filename="foo.txt"
Content-Type: text/plain

... file contents here ...
--BOUNDARY--

boundary не может присутствовать в содержании файла, по очевидным причинам.

Что я должен сделать для создания уникальной границы? Я должен генерировать случайную строку, проверить, чтобы видеть, находится ли это в содержании файла, и если это, генерируйте новое, промывку и повторение, пока у меня нет уникальной строки? Или был бы "довольно случайный маркер" (скажите, комбинация метки времени, обработайте идентификатор, и т.д.) быть достаточно?

36
задан August Lilleaas 15 January 2010 в 12:02
поделиться

2 ответа

Если вы используете что-то случайное, как GUID, не должно быть никакой необходимости охотиться через полезную нагрузку, чтобы проверить псевдоним границы. Что-то вроде: -

---- = NextPart_3676416B-9AD6-440C-B3C8-FC66DDC7DB45
Заголовок: ....

полезная нагрузка
---- = NextPart_3676416B-9AD6-440C-B3C8-FC66DDC7DB45 -

50
ответ дан 27 November 2019 в 05:54
поделиться

Если вы чувствуете параноик, вы можете генерировать случайную границу и искать его в строке, которая будет отправлена, добавьте случайное CHAR (или повторно создать новую) на Find, повторите. Но мой опыт - любая произвольная неразрушающая строка из 10 или около того, что персонажи составляют невозможными, поэтому выбирая что-то вроде --- граничная --- граничная --- граница --- совершенно достаточной.

0
ответ дан 27 November 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: