SuperAPI AI 工具集

input-validation

编程与开发

查看项目

更新于 10-15 22:11

技能介绍

用途:该技能为 Hack23 各项目提供统一的输入验证与输出编码实践,目标是在处理用户输入和外部数据前完成校验,并在输出时按上下文编码,从而防止 XSS、SQL 注入、命令注入和路径遍历等注入类攻击。

主要能力与规则:输入验证要求所有输入在入口处进行服务端验证,采用白名单方式定义允许内容,校验数据类型、长度、格式和范围,拒绝无效输入并返回不暴露系统细节的错误信息;对文件名和路径做净化以防路径遍历,校验上传文件的内容类型,并在所有 API 端点保持一致验证。禁止仅依赖客户端验证、信任未验证的外部数据、以黑名单作为主要防御、回显原始用户输入、在错误信息中暴露堆栈或系统信息,以及接受任意用户文件路径。

输出编码要求:在 HTML 上下文渲染前进行 HTML 实体编码,数据库操作使用参数化查询,使用框架自带且开启自动转义的模板引擎,按输出上下文(HTML、URL、JavaScript、CSS)编码,并正确设置 Content-Type 响应头。禁止用字符串拼接构造 SQL、对未净化输入使用 innerHTML、关闭模板自动转义,以及将用户输入直接传给 shell 命令。

CSP 与静态站点:要求设置严格的 Content-Security-Policy 头,尽量避免 unsafe-inline 和 unsafe-eval,必要时使用基于 nonce 的 CSP。对于静态 HTML 站点(homepage),需转义 meta 标签中的动态内容,校验并净化 href/src 属性中的 URL,外部链接使用 rel="noopener noreferrer",并确保表单使用正确的 action URL 和 method 属性。

适用场景与限制:适用于 Hack23 项目的开发与安全审查,映射 ISO 27001:2022 A.8.26、NIST CSF 2.0 PR.DS、CIS Controls v8.1 Control 16 及 OWASP Top 10 A03:2021、A07:2021。资料未提供具体安装命令、代码示例或平台限制。