资源描述:
《Python学习中你不可不知的Python陷阱(二).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Python学习中你不可不知的Python陷阱(二)本篇文章主要是对上篇文章Python学习中的出现的安全隐患问题的一个补充,安全隐患不可小看,一不注意就可能造成很大的错误。模块注入Python的模块导入系统功能强大而复杂。模块和包可以通过定义在sys.path列表中的搜索路径找到的文件或目录名导入。搜索路径初始化是一个复杂的过程,它也依赖于Python版本,平台和本地配置。要对一个Python应用程序进行成功攻击,攻击者需要找到一种方法来将恶意Python模块揉入进Python在尝试导入模块时会考虑的一个目录或可导入包文件。处理措
2、施是维护搜索路径中的所有目录和包文件的安全访问权限,以确保未经授权的用户无法对其进行写访问。请记住,调用Python解释器的初始脚本所在的目录会自动插入到搜索路径中。像这样运行脚本显示实际的搜索路径:root@iZ2854ev03bZ:~#catmyapp.py#!/usr/bin/envpython#-*-coding:utf-8-*-importsysimportpprintpprint.pprint(sys.path)在Windows平台,Python进程的当前工作目录,而不是脚本所在位置,会被注入到搜索路径中。在UNIX平台
3、,无论何时从标准输入或者命令行("-"或者"-c"或者"-m"选项)读入程序代码,当前工作目录都会自动插入到 sys.path 中:root@iZ2854ev03bZ:~#echo"importsys;importpprint;pprint.pprint(sys.path)"
4、python-['','/usr/local/lib/python2.7/dist-packages/gensim-0.12.3-py2.7-linux-x86_64.egg','/usr/local/lib/python2.7/dist-packages
5、/smart_open-1.3.2-py2.7.egg','/usr/local/lib/python2.7/dist-packages/requests-2.8.1-py2.7.egg','/usr/local/lib/python2.7/dist-packages/bz2file-0.98-py2.7.egg','/usr/local/lib/python2.7/dist-packages/httpretty-0.8.10-py2.7.egg','/usr/local/lib/python2.7/dist-packages/bo
6、to-2.38.0-py2.7.egg','/usr/lib/python2.7/dist-packages','/usr/local/lib/python2.7/dist-packages/tornado-4.3-py2.7-linux-x86_64.egg','/usr/local/lib/python2.7/dist-packages/singledispatch-3.4.0.3-py2.7.egg','/usr/local/lib/python2.7/dist-packages/Project_RNN_Enhancement
7、-0.0.1-py2.7.egg','/usr/lib/python2.7','/usr/lib/python2.7/plat-x86_64-linux-gnu','/usr/lib/python2.7/lib-tk','/usr/lib/python2.7/lib-old','/usr/lib/python2.7/lib-dynload','/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages/PILcompat','/usr/lib/p
8、ython2.7/dist-packages/gtk-2.0','/usr/lib/pymodules/python2.7']root@iZ2854ev03bZ:~#python-c"importsys;importpprint;pprint.pprint(sys.path)"['','/usr/local/lib/python2.7/dist-packages/gensim-0.12.3-py2.7-linux-x86_64.egg','/usr/local/lib/python2.7/dist-packages/smart_op
9、en-1.3.2-py2.7.egg','/usr/local/lib/python2.7/dist-packages/requests-2.8.1-py2.7.egg','/usr/local/lib/python2.7/dist-