与input()和raw_input()相关的安全问题的简单解释

时间:2015-07-02 04:51:54

标签: python security input built-in

我正在阅读这篇Python 2.7教程,他们正在讨论String str="+91-9876543210";; System.out.println(str.substring(str.indexOf('-')+1,str.length())); ,并提到:

  

input()函数会尝试将您输入的内容转换为它们   是Python代码,但它有安全问题所以你应该避免它。

我尝试用谷歌搜索一些解释,但对我来说还是有点不清楚;对raw_input() vs input()涉嫌固有安全问题的简单解释是什么?

1 个答案:

答案 0 :(得分:7)

Python 2.x中的input()函数在返回之前评估事物。

举个例子,你可以看看这个 -

>>> input("Enter Something : ")
Enter Something : exit()

这会导致程序退出(因为它会评估exit())。

另一个例子 -

>>> input("Enter something else :")
Enter something else :__import__("os").listdir('.')
['.gtkrc-1.2-gnome2', ...]

这将列出当前目录的内容,您还可以使用os.chdir()os.remove()os.removedirs()os.rmdir()

等功能