【问题标题】:Simple explanation of security issues related to input() vs raw_input() [duplicate]与 input() 与 raw_input() 相关的安全问题的简单解释 [重复]
【发布时间】:2015-07-02 04:51:54
【问题描述】:

我正在阅读这个 Python 2.7 教程,他们正在阅读 raw_input(),它提到:

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

我尝试在谷歌上搜索一些解释,但我还是有点不清楚;对 input()raw_input() 所谓的固有安全问题的简单解释是什么?

【问题讨论】:

  • 尝试将对象创建为a 并给它一些输入。然后使用 input() 函数从命令行获取用户输入,然后只需键入不带引号的a 并打印来自用户的值

标签: python security input built-in


【解决方案1】:

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()等函数

【讨论】:

  • 显然这不再相关,因为我无法在 python 3.7.2 上重现它。
猜你喜欢
  • 2017-04-12
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2011-09-17
相关资源
最近更新 更多