| 高危函数 | Java ObjectInputStream、PHP unserialize、Python pickle、Ruby Marshal |
|---|---|
| 触发条件 | 类路径中存在可被拼接利用的类,且数据可控 |
| 判断要点 | 数据是否来自用户?是否存在危险类?两者同时出现风险显著 |
安全替代示例
安全替代示例
Java:改用 JSON(Jackson/Gson)并禁用多态类型解析
PHP:改用 json_decode;必须 unserialize 时用 allowed_classes 白名单
Python:改用 json;避免 pickle.loads(用户输入)组件升级可减少可用链,但不能替代代码层改造:应把反序列化入口改为数据格式解析。