PHP进阶:H5站长安全防注入实战
|
H5页面常嵌入PHP后端逻辑,但不少站长仍用简单拼接SQL或直接输出用户输入,导致XSS、SQL注入等高危漏洞频发。安全不是选配功能,而是H5上线前必须通过的门槛。 SQL注入的核心破绽在于将用户输入未经处理就拼进查询语句。务必弃用mysql_query()等已废弃函数,统一采用PDO预处理机制。例如:$stmt = $pdo->prepare("SELECT FROM users WHERE id = ?"); $stmt->execute([$id]); —— 占位符?自动剥离恶意字符,从根源阻断注入路径。 前端传参不可轻信,哪怕加了JS校验。所有GET/POST/COOKIE数据都需严格过滤。数字型参数用(int)强制转换或filter_var($input, FILTER_VALIDATE_INT);字符串则先trim()去首尾空格,再用htmlspecialchars($str, ENT_QUOTES, 'UTF-8')转义HTML特殊字符,防止XSS脚本执行。 H5页面常动态拼接URL或JS代码,此时极易触发反射型XSS。若必须输出变量到HTML属性或JS上下文,须按场景选用不同转义方式:输出到HTML内容区用htmlspecialchars;插入到JS字符串内需用json_encode($value, JSON_UNESCAPED_UNICODE | JSON_HEX_TAG);写入URL参数则用urlencode()。 文件操作是另一高危区。用户上传头像、配置文件时,绝不能直接用$_FILES['file']['name']生成存储路径。应重命名文件为唯一哈希值(如sha1(uniqid().time())),限制扩展名白名单(仅允许jpg/png/gif),并设置upload目录无执行权限。同时禁用.htaccess覆盖与PHP解析。
本效果图由AI生成,仅供参考 会话安全常被忽视。登录后务必调用session_regenerate_id(true)更新SID,并设置session.cookie_httponly = 1与session.cookie_secure = 1(HTTPS环境下)。敏感操作如密码修改、支付前,需二次验证当前会话是否仍在有效期内,避免会话劫持。 请定期审查error_reporting(E_ALL)开启状态下的日志,隐藏生产环境错误详情(display_errors=Off),防止暴露路径或数据库结构。安全是持续过程:一次加固不等于永久免疫,每次新增接口都应走一遍输入过滤→预处理→上下文转义的标准链路。 (编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


浙公网安备 33038102330481号