我最近在HackerNews上进行了测试,邀请人们来破解我的网络应用程序(www.tagxt.com)。
有些人成功地打破了我想要解决的几件事。
我在这之后的是:
如何阻止人们创建../../
和../logout
等用户名,但仍允许他们使用☃☃☃☃☃☃
等unicode字符?此外,_
下划线也可以。
最大用户名长度为15个字符,因此性能不是一个很大的因素,但我希望找到最快的方法来删除危险字符。
答案 0 :(得分:0)
这样的事情:
list = ["A", "B", "C"...]
for i in list:
string1 = "../../"
if i in string1:
print("Error")
我不太确定......
答案 1 :(得分:0)
验证字符的最快方法是创建一个包含所有允许字符的白名单:
allowed = [ 'A','B','C'...]
如果这看起来很乏味,请使用像OWASP ESAPI
这样的库