首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

python eval的常见错误封装及利

最近在代码评审的过程,发现挺多错误使用eval导致代码注入的问题,比较典型的就是把eval当解析dict使用,有的就是简单的使用eval,有的就是错误的封装了eval,供全产品使用,这引出的问题更严重,...1,做什么 简单来说就是执行一段表达式 >>> eval('2+2') 4 >>> eval("""{'name':'xiaoming','ip':'10.10.10.10'}""") {'ip': ...,第一个很明显做计算用,第二个把string类型数据转换成python的数据类型,这里是dict,这也是咱们产品中常犯的错误。...eval 可接受三个参数,eval(source[, globals[, locals]]) -> value  globals必须是路径,locals则必须是键值对,默认取系统globals和locals...(s, {'__builtins__':{}}) Segmentation fault (core dumped) 在这里用户定义了一段函数,这个函数调用,直接导致段错误  下面这段代码则是退出解释器:

79510

python0073_进制转化_eval_evaluate_衡量_oct_octal_八进制

怎么转化呢?...整型数字和字符串的 转化 字符串转化为整型数字​添加图片注释,不超过 140 字(可选)整型数字转化为字符串​添加图片注释,不超过 140 字(可选)类型转化 练了无数次都练出茧子了这次来个新方法新办法...不论什么形式的字符串 都可以用 eval()函数衡量出来​添加图片注释,不超过 140 字(可选)evaluate 衡量 0b 前缀 二进制0o 前缀 八进制0x 前缀 十六进制​添加图片注释,...不超过 140 字(可选)不光如此 eval 还可以计算eval eval 可以计算​添加图片注释,不超过 140 字(可选)甚至可以计算函数​添加图片注释,不超过 140 字(可选)这能解决 字符串...eval数字41 和 字符串"41" 的不同函数名前缀目标字符串所用进制bin0b二进制oct0o八进制hex0x十六进制eval无前缀十进制字符串"41" 两个字符字符转化为 ascii 序号b"\

15420
领券