Безопасно ли использовать значения, сгенерированные модулем Python UUID, в URL-адресах веб-страницы?
Вопрос
Безопасно ли использовать значения, сгенерированные модулем Python UUID, в URL-адресах веб-страницы?Wnat использовать эти идентификаторы как часть URL-адресов.Существуют ли какие-либо небезопасные символы, когда-либо сгенерированные Python UUID, которых не должно быть в URL-адресах?
Решение
Они в безопасности.Видишь здесь для всех возможных выходных форматов.Все они представляют собой читаемые строки или целые числа.
Другие советы
Это хорошая практика для всегда urlencode данные, которые будут помещены в URL-адреса.Тогда вам не нужно беспокоиться о специфике UUID или о том, изменится ли она в будущем.
Я использую GUID в основном как первичные ключи, и мне часто приходится передавать их в качестве аргументов URL.
Шестнадцатеричная форма с тире и дополнительными символами кажется мне излишне длинной.Но мне также нравится, что строки, представляющие шестнадцатеричные числа, очень безопасны, поскольку они не содержат символов, которые могут вызвать проблемы с URL-адресами.
Вместо шестнадцатеричной я использую строку base64, безопасную для URL-адресов.Ниже приведен некоторый код 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('=', '')