用途:在编写或审查安全敏感的 PHP 代码时提供防护规范,核心原则是永不信任用户输入,对 $_GET、$_POST、$_COOKIE、$_FILES、$_SERVER、$_REQUEST 全部校验,并采用纵深防御。
主要能力:SQL 注入防护(仅用预处理语句与绑定参数,表名列名走白名单,使用 PDO 异常模式并关闭模拟预处理);XSS 防护(输出按上下文转义,HTML 用 htmlspecialchars($val, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'),JS 用 json_encode 加 JSON_HEX_TAG,URL 用 urlencode,并设置 CSP);CSRF(会话级 token,用 hash_equals 做时序安全比较,SameSite=Lax);密码(password_hash/password_verify,PASSWORD_DEFAULT 或 PASSWORD_ARGON2ID,禁用 md5/sha1,登录时 password_needs_rehash);输入校验(filter_var/filter_input 及各类 FILTER_VALIDATE_、FILTER_SANITIZE_);文件上传(用 finfo 校验真实 MIME、限制大小、随机文件名、存于 web 根目录之外);会话安全(httponly、secure、SameSite、use_strict_mode,登录后 session_regenerate_id(true));路径遍历(白名单或 realpath 加前缀校验);加密(random_bytes、hash_equals、sodium,密钥不入代码);HTTP 安全头与 php.ini 加固(display_errors=Off、expose_php=Off、open_basedir、allow_url_include=Off、disable_functions 等)。
使用方式:作为编码规范与检查清单应用;可用 Psalm 做污点分析:vendor/bin/psalm --taint-analysis,作为人工审查的补充而非替代。
适用场景:PHP 应用的输入处理、数据库、文件、认证与会话相关代码开发与审计。
限制:资料未提供具体安装步骤、收费与平台信息;FILTER_VALIDATE_EMAIL 仅校验语法,FILTER_VALIDATE_URL 仅支持 ASCII;FILTER_SANITIZE_STRING 在 PHP 8.1 已弃用;不得对用户数据使用 unserialize()。