python中的return
只要执行一个return,则不会执行下面的语句。
SEN=['<','>',',',':','\'','/',';','"','{','}','(',')']
def ischeck(str):
if re.match(r'^(http)',str):
print('1')
return False
for i, c in enumerate(str):
print('i',i)
print('c',c)
if ord(c) > 127 or ord(c) < 31:
print('2')
return False
if c in SEN:
print('3')
return True
print('4')
return False
if __name__ == '__main__':
print(ischeck('http://127.0.0.1%22style=x:expression(alert(42873))%3E'))
1
False
print(ischeck('你/0_1/user.php?back_act=http://127.0.0.1%22style=x:expression(alert(42873))%3E'))
i 0
c 你
2
False
print(ischeck('/0_1/user.php?back_act=http://127.0.0.1%22style=x:expression(alert(42873))%3E'))
i 0
c /
3
True
print(ischeck('h/0_1/user.php?back_act=http://127.0.0.1%22style=x:expression(alert(42873))%3E'))
i 0
c h
i 1
c /
3
True
print(ischeck('</0_1/user.php?back_act=http://127.0.0.1%22style=x:expression(alert(42873))%3E'))
i 0
c <
3
True
print(ischeck('#'))
i 0
c #
4
False