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

Adj*_*con 4 python security input built-in

我正在阅读这篇Python 2.7教程,他们已经过去了raw_input(),它提到:

input()函数会尝试将您输入的内容转换为Python代码,但它存在安全问题,因此您应该避免使用它.

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

Ana*_*mar 8

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

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

>>> input("Enter Something : ")
Enter Something : exit()
Run Code Online (Sandbox Code Playgroud)

这将导致程序退出(因为它将评估exit()).

另一个例子 -

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

这将列出当前目录下的内容,你也可以使用的功能,例如os.chdir(),os.remove(),os.removedirs(),os.rmdir()