在网页的URL中使用Python UUID模块生成的值是否安全?

时间:2009-02-19 21:47:30

标签: python url uuid

在网页的URL中使用Python UUID模块生成的值是否安全? Wnat使用这些ID作为URL的一部分。是否有任何Python UUID生成的非安全字符不应该在URL中?

3 个答案:

答案 0 :(得分:8)

优良作法是始终 urlencode将放入网址的数据。那么你不必关心UUID的具体细节,或者它将来是否会发生变化。

答案 1 :(得分:6)

他们很安全。有关所有可能的输出格式,请参阅here。所有这些都是可读的字符串或整数。

答案 2 :(得分:0)

我主要使用GUID作为主键,并且经常需要将它们作为URL参数传递。

十六进制形式,带有破折号和额外字符对我来说似乎不必要了。但我也喜欢表示十六进制数字的字符串是非常安全的,因为它们不包含可能导致URL问题的字符。

我使用url-safe 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('=', '')