超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

文件、路径、序列化与服务端注入

Web 安全与XSS、CSRF、SQL 注入与权限安全#Python全栈#第十八阶段#Web 安全与XSS、CSRF、SQL 注入与权限安全#文件、路径、序列化与服务端注入约 974 字 · 3 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

文件上传为什么不能只检查扩展名或客户端声明的 MIME 类型?

追问 文件内容、解析结果、大小和允许类型怎样交叉检查?图片重新编码或文件扫描能解决什么,为什么仍需限制处理资源?

服务器怎样生成上传文件的保存名称与目录?

追问 原始文件名、同名覆盖和目录分隔符怎样处理?存储位置为什么应与可执行代码及公开目录分开,文件归属怎样记录?

根据用户参数下载或读取文件时,怎样防止路径越界?

追问 资源 ID 映射、路径规范化与目录范围检查怎样组合?为什么字符串前缀比较不可靠,符号链接与检查后路径变化怎样考虑?

解压用户上传的压缩包,需要防范哪些问题?

追问 条目路径、符号链接、文件数量、展开体积和覆盖已有文件怎样检查?怎样核对所用解压 API 的行为,不依赖扩展名或压缩大小判断安全?

用户上传的 HTML、SVG 或其他主动内容应该怎样提供访问?

追问 业务是否必须支持这些类型?独立来源、下载响应与正确 Content-Type 怎样选择,为什么放在主站同源目录可能扩大影响?

为什么不可信数据不应直接交给 pickle.loads?

追问 对象反序列化与普通数据解析有什么区别?如何改用明确结构的数据格式,签名校验又依赖哪些密钥和内容来源前提?

eval、exec 与 YAML 对象加载为什么需要特别审查?

追问 用户提交表达式或配置时怎样避免执行任意代码?safe_load、JSON 与结构校验各有什么边界,解析深度、体积和资源消耗还需怎样限制?

服务端模板注入与浏览器 XSS 的执行位置有什么区别?

追问 为什么应把用户输入作为固定模板的数据,而不是拼成模板源码?HTML 自动转义能否阻止模板引擎先执行表达式,模板上下文怎样保持最小?

Python 调用系统命令处理文件时,怎样避免命令与参数注入?

追问 shell=True、参数列表和固定可执行文件怎样影响风险?关闭 Shell 后,用户输入被解释为程序选项仍可能怎样出错,权限和超时如何限制?

导出 CSV 为什么可能引入电子表格公式注入?

追问 把数据加上 CSV 引号是否就会作为普通文本显示?人工查看与程序再次导入怎样分别设计,如何验证目标软件保存再打开后的行为?

文件与执行核对资料: OWASP:File Upload、Python:pickle、subprocess 安全说明、PyYAML 文档、OWASP:SSTI Prevention、CSV Injection。