目前有一个python的项目,想加入第三方插件开发的一个功能。 插件的形式也就是一个PY文件,但是看了python安全这块的文章后,发现python是动态的,很容易就注入到核心代码,包括各种monkeypack之类的,如何做这块才能安全呢?
PS: 现在有些在线课堂也有 在线编程的功能,他们怎么做到的安全呢?
# plug_hello.py

def hello():
    print "hello world"
# load.py

import plug_hello 
plug_hello.hello()
# plug_hello.py

正常这样加载是没问题,但是黑客就可以注入。

def hello():
    #在 Python 2中, 内置对象可以通过魔法 __builtins__ 模块进行访问。一个已知的手段就是利用 __builtins__ 的可变性,这可能引起巨大灾难
    import __builtins__
    __builtins__.False, __builtins__.True = True, False
    print "hello world"
黑客这样写,整个程序的True 和 False 变量就会出问题,而且黑客使用py特性还能获取和修改主程序任何运行函数类的源代码,从而进一步的注入。

--------------------------------------------------------

好消息:为了感谢广大网友对安全牛课堂的亲睐和忠实的追随,安全牛课堂本周特拿课堂新录制的“简单学python安全”做限时打折促销,原价399元,促销期间199元就可以看了,本课程为实战类课程,而非基础理论课程,学习起来较容易接受,欢迎购买。购买链接地址:
http://edu.aqniu.com/course/2337