潜在用户是否有可能使此声明成立?
secret = 25134231
z = ast.literal_eval(user_input)
if z == secret:
access.granted()
答案 0 :(得分:0)
编辑更多回答你的问题...我认为你正在通过literal_eval()
从用户输入(以及其他事情)进行函数调用,答案是否定的,它无法完成。 literal_eval()
专门用于防范此类输入。
对比见下文。用户可以键入access_granted()
,该功能将像用户键入24134231
一样运行。
import ast
def access_granted():
print 'Yay'
while True:
secret = 25134231
user_input = raw_input('In: ')
z = eval(user_input)
if z == secret:
access_granted()
示例:
In: access_granted()
Yay
In: 'Foo'
In: 25134231
Yay