从字符串中删除不安全字符但保留 unicode 字符的最快方法



我最近在HackerNews上进行了一次测试,邀请人们来破坏我的网络应用程序(www.tagxt.com)。

有些人成功地破坏了我试图解决的几件事。

我在这里追求的是:

如何阻止人们创建 ../../../logout 等用户名,但仍允许他们使用 Unicode 字符(如 ☃☃☃☃☃☃)?此外,_下划线还可以。

最大用户名长度为 15 个字符,因此性能不是一个重要因素,但我想找到删除危险字符的最快方法。

验证字符的最快方法是创建所有允许字符的白名单:

allowed = [ 'A','B','C'...]

如果这看起来很乏味,请使用诸如OWASP ESAPI之类的库。

像这样的事情呢:

list = ["A", "B", "C"...]
for i in list:    
    string1 = "../../"
    if i in string1:
        print("Error")

我不太确定...

最新更新