Безопасно ли использовать значения, генерируемые модулем Python UUID, в URL-адресах веб-страницы? - PullRequest
3 голосов
/ 20 февраля 2009

Безопасно ли использовать значения, генерируемые модулем Python UUID, в URL-адресах веб-страницы? Хотите использовать эти идентификаторы как часть URL. Существуют ли когда-либо небезопасные символы, сгенерированные Python UUID, которых не должно быть в URL?

Ответы [ 3 ]

8 голосов
/ 20 февраля 2009

Рекомендуется всегда данные urlencode, которые будут помещаться в URL-адреса. Тогда вам не нужно беспокоиться о специфике UUID или о том, изменится ли она в будущем.

6 голосов
/ 20 февраля 2009

Они в безопасности. Смотрите здесь для всех возможных форматов вывода. Все они являются читаемыми строками или целыми числами.

0 голосов
/ 29 августа 2013

Я использую GUID в основном в качестве первичных ключей и часто должен передавать их в качестве аргументов URL.

Шестнадцатеричная форма с черточками и дополнительными символами кажется мне излишне длинной. Но мне также нравится, что строки, представляющие шестнадцатеричные числа, очень безопасны, так как не содержат символов, которые могут вызвать проблемы с URL-адресами.

Вместо шестнадцатеричного числа я использую безопасную для URL строку base64. Ниже приведен код Python, который делает это. Хотя он не соответствует какой-либо спецификации UUID / GUID (кроме необходимого количества случайности).

import base64
import uuid

# get a UUID - URL safe, Base64
def get_a_Uuid():
    r_uuid = base64.urlsafe_b64encode(uuid.uuid4().bytes)
    return r_uuid.replace('=', '')
...