在网页的URL中使用Python UUID模块生成的值是否安全? Wnat使用这些ID作为URL的一部分。是否有任何Python UUID生成的非安全字符不应该在URL中?
答案 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('=', '')