写点什么

自定义构造 python 白名单 __builtins__

用户头像
么么哒
关注
发布于: 2020 年 05 月 29 日

有时候使用python eval,为了安全考虑一般会构造白名单__builtins__,去除掉一些不安全的方法,具体实现如下。



def __safe_builtins(self):
safe_names = '''
object
bool int float complex
str bytes bytearray
tuple list
set frozenset
dict
slice range
abs
round
pow
divmod
iter
next
len sum
min max
all any
map filter
zip
enumerate
sorted
reversed
bin hex oct
ascii
repr
chr ord
format
dir
locals globals
id hash
isinstance
issubclass
callable
print
input
exit quit
'''.strip()
safe_name_set = frozenset(safe_names.split())
safe_builtins = {name: builtins.__dict__[name] for name in safe_name_set}
return safe_builtins



用户头像

么么哒

关注

还未添加个人签名 2018.03.15 加入

还未添加个人简介

评论

发布
暂无评论
自定义构造python白名单__builtins__