国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python如何考慮代碼注入安全?

瀏覽:127日期:2022-09-20 08:34:37

問(wèn)題描述

目前有一個(gè)python的項(xiàng)目,想加入第三方插件開(kāi)發(fā)的一個(gè)功能。 插件的形式也就是一個(gè)PY文件,但是看了python安全這塊的文章后,發(fā)現(xiàn)python是動(dòng)態(tài)的,很容易就注入到核心代碼,包括各種monkeypack之類(lèi)的,如何做這塊才能安全呢?

PS: 現(xiàn)在有些在線課堂也有 在線編程的功能,他們?cè)趺醋龅降陌踩兀?/p>

# plug_hello.pydef hello(): print 'hello world'

# load.pyimport plug_hello plug_hello.hello()

正常這樣加載是沒(méi)問(wèn)題,但是黑客就可以注入。

# plug_hello.pydef hello(): #在 Python 2中, 內(nèi)置對(duì)象可以通過(guò)魔法 __builtins__ 模塊進(jìn)行訪問(wèn)。一個(gè)已知的手段就是利用 __builtins__ 的可變性,這可能引起巨大災(zāi)難 import __builtins__ __builtins__.False, __builtins__.True = True, False print 'hello world'

黑客這樣寫(xiě),整個(gè)程序的True 和 False 變量就會(huì)出問(wèn)題,而且黑客使用py特性還能獲取和修改主程序任何運(yùn)行函數(shù)類(lèi)的源代碼,從而進(jìn)一步的注入。

問(wèn)題解答

回答1:

這個(gè)問(wèn)題我也不懂,需要問(wèn)問(wèn)專(zhuān)門(mén)做這方面的人

我只說(shuō)說(shuō)我的想法:

由于第三方的功能由你們制定,預(yù)先封裝好第三方需要用到組件模塊,利用sys.module設(shè)置模塊白名單,只允許第三方導(dǎo)入你們提供的模塊,其他模塊sys.module[mod] = None禁止導(dǎo)入

PS:在線編程網(wǎng)站都是在沙箱環(huán)境里運(yùn)行用戶(hù)代碼的,破壞便破壞了,反正環(huán)境是虛擬,貌似跟你這個(gè)問(wèn)題關(guān)聯(lián)不大

回答2:

分享其中一個(gè)心得: 比如說(shuō), 文件處理時(shí), 經(jīng)常習(xí)慣取個(gè)變量path, 但又經(jīng)常from os import path

可以這么用:

import os.path# import os.path后, 使用時(shí), 需要完整輸入os.path# 相對(duì)于import os總模塊而言, import os.path能避免無(wú)用的引入path = os.path.join('/tmp', filename)回答3:

使用ast.literal_eval(), 只允許使用 string,bytes,number,tuples,lists,discts,set,booleans,None

ast.literal_eval(node_or_string)Safely evaluate an expression node or a string containing a Python literal or container display. The string or node provided may only consist of the following Python literal structures: strings, bytes, numbers, tuples, lists, dicts, sets, booleans, and None.

This can be used for safely evaluating strings containing Python values from untrusted sources without the need to parse the values oneself. It is not capable of evaluating arbitrarily complex expressions, for example involving operators or indexing.

Changed in version 3.2: Now allows bytes and set literals.

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 美女视频黄的免费看网站 | 成年女人免费毛片视频永久 | 亚洲网址在线 | 麻豆理论片 | 色伦网| 欧美亚洲一级片 | 青青热久久国产久精品秒播 | 国产女人成人精品视频 | 国产精品久久久久久久久久久搜索 | 99视频精品免费99在线 | 免费播放欧美毛片欧美aaaaa | 欧美成人免费在线 | 国产美女操 | 波多野结衣在线不卡 | 国产99在线播放 | a级片在线观看免费 | 亚洲最黄视频 | 男女午夜免费视频 | 永久免费不卡在线观看黄网站 | 亚洲精美视频 | 欧美另类视频一区二区三区 | 看色网站 | 国产片在线天堂av | 亚洲天堂视频一区 | 波多野一区二区 | 成人一级网站 | 成人福利网站含羞草 | 成人性动漫高清免费观看网址 | 操美国女人 | 国产成 人 综合 亚洲绿色 | 久草在线视频新时代视频 | 巨乳女上司 | 在线看片 在线播放 | 欧美成人中文字幕 | 黄 色 三 级 网站 | 91久久综合| 一区二区三区国产美女在线播放 | 日韩美一区二区三区 | 99久久国产免费 - 99久久国产免费 | 日本免费毛片在线高清看 | 日日a.v拍夜夜添久久免费 |