【发布时间】:2015-11-28 14:56:43
【问题描述】:
我看到你可以解析用户名和密码:
from urlparse import urlparse
r = urlparse('http://myuser:mypass@example.com')
print r.username
# => 'myuser'
我怎样才能走另一条路?我不能使用urlunparse,因为我不能这样做:
r.username = request.args['username']
# => AttributeError: can't set attribute
我很感兴趣,因为用户名包含需要转义的字符(即:@、/)。
编辑:
这个字符串来自用户输入,所以我不会提前知道它是什么。维护您自己的转义字符列表存在安全风险,因此字符串连接和使用 replace 转义的自定义字符在这里无济于事。
【问题讨论】:
-
你不能在设置
r之前做一个简单的str.format(x,y,z)吗? -
@taesu 不,需要转义的字符不会以这种方式转义。查看我的更新。
-
@iAdjunct 编写您自己的副本需要转义(而不是维护它)是一种安全风险。