Webapp用户名安全性

时间:2012-06-17 13:24:10

标签: python web-applications security username

我正在Python(和Flask)中创建一个web应用程序,用户可以使用他们想要的用户名进行注册。我想在/ user /上显示他们的个人资料,并在服务器上为每个用户创建一个目录。

确保用户名对于网址和目录都是安全的最佳方法是什么?我在base64中读到了使用urlsafe方法的人,但是我希望有一个与其用户名相关的字符串,以便于识别。

1 个答案:

答案 0 :(得分:1)

此类URL安全值的通用术语是"slug",生成一个的过程称为“slugification”或“to slugify”。人们通常使用正则表达式来这样做;这里有一个(来自this article on the subject),只使用stdlib模块:

import re
from unicodedata import normalize

_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+')

def slugify(text, delim=u'-'):
    """Generates an slightly worse ASCII-only slug."""
    result = []
    for word in _punct_re.split(text.lower()):
        word = normalize('NFKD', word).encode('ascii', 'ignore')
        if word:
            result.append(word)
    return unicode(delim.join(result))

链接文章还有另外两个需要额外模块的替代方案。