邓良驹 编写更安全的Python代码编写安全的Python代码 邓良驹 2019.10.19 思考题 if user.balance >= product.price: user.balance -= product.price ? 目录 CONTENTS 常见不安全代码 代码检查的工具 总结:如何规避风险 常见不安全代码 小心 eval 应对: 在生产环境中,任何情况下都不要使用eval。 import sys "__main__": shellcode = pickle.dumps(ShellExp()) pickle.loads(shellcode) 应对: 绝不对不可信/未认证数据进行unpickle,使用更安全的JSON 或YAML做序列化。必须使用pickle时在沙盒环境执行。 小心 PyYAML 应对: 使用yaml.safe_load,必要时编写自定义 Loader 做更严格的检查。 对不可信来源的序列化检查后操作。 有的甚至是故意、恶意为之。 应对: 谨慎选择第三方 PyPI 包,尽量少导入 PyPI 包; 利用 https://pyup.io/ 等服务保持检查和更新依赖; 利用 Chef InSpect 落实代码安全规范的检查。 *参考资料:“驹说码事” 《如何import一个不存在的对象》 https://mp.weixin.qq.com/s/0_ivKVDU-nKf3r-c96sqrA 利用 Bandit0 码力 | 18 页 | 988.40 KB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 54 -> 0.59 3.14 -> 0.93 2.00 -> 0.03 2.60 -> 0.96 如果还有时间,我们用静态类型 来写一个简单的网页生成框架 一个用起来,没有学习曲线的框架。 很安全,因为没有程序员需要付出心 智负担的工作。 THANK YOU thautwarm: - github.com/thautwarm - twshere@outlook.com0 码力 | 43 页 | 10.71 MB | 1 年前3
Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.6 stringprep --- 因特网字符串预备 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 12.5.1 dbm.gnu DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.6 sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.6.1 教程 . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.13 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.6 stringprep --- 因特网字符串预处理 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.5.1 dbm.sqlite3 . . . . . . . . . . . . 488 12.5.2 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 12.5.3 dbm.ndbm --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2242 页 | 11.73 MB | 9 月前3
Python 标准库参考指南 3.10.15 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.6 stringprep --- 因特网字符串预备 . Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 12.5.1 dbm.gnu --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.6 sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . . . . . . . . . . . . 444 12.6.1 教程 . . . . . . . . . .0 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.13 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.6 stringprep --- 因特网字符串预处理 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 12.5.1 dbm.sqlite3 . . . . . . . . . . . . 492 12.5.2 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 12.5.3 dbm.ndbm --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2246 页 | 11.74 MB | 9 月前3
Python 标准库参考指南 3.12 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 . . . . . . . . . 471 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.5.1 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.5.3 dbm.dumb --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.6 sqlite3 --- SQLite 数据库的 DB-API0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.12 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 . . . . . . . . . 471 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.5.1 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.5.3 dbm.dumb --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.6 sqlite3 --- SQLite 数据库的 DB-API0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.11.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 ii 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 6.6 stringprep --- 因特网字符串预备 . . . . . . . . 495 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 12.5.1 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.5.2 dbm.ndbm --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.5.3 dbm.dumb --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2399 页 | 11.19 MB | 9 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 6.6 stringprep --- 因特网字符串预备 . . . . . . . . 405 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 12.6 sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . OS X .plist 文件 . . . . . . . . . . . . . . . . . . . . . . . . . 494 15 加密服务 497 15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 15.2 hmac --- 基于密钥的消息验证0 码力 | 1961 页 | 9.14 MB | 9 月前3
共 130 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13













