You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复PHP代码中的HTTP Response Splitting漏洞?

搞定HTTP Response Splitting漏洞:问题解析与修复方案

首先得搞明白啥是HTTP Response Splitting(HTTP响应拆分):这是一种攻击者利用HTTP头注入换行符(\r或\n)的攻击方式,能把原本的响应头拆成多个,甚至伪造全新的HTTP响应,进而搞会话劫持、钓鱼这类坏事儿。

回到你的代码,RIPS检测到的风险确实出在这行:

header("Location: index.php?email=$email&showID=pswrd");

虽然你用了filter_var()验证邮箱格式,但关键问题是:当你把$email直接拼接到Location头的URL参数里时,如果攻击者能构造出包含换行符的输入(哪怕邮箱验证理论上应该拦截,但工具会从数据流角度判定“用户可控输入进入了header这个敏感输出点”),就可能触发响应拆分。

修复方法很简单,两步走:

  • 对URL参数做编码:用urlencode()函数处理$email,它会把所有非URL安全的字符(包括换行、特殊符号)转换成%XX的格式,彻底杜绝换行符进入HTTP头的可能。
    修改后的代码行应该是:
    header("Location: index.php?email=" . urlencode($email) . "&showID=pswrd");
    
  • 顺便修正一个小bug:你代码里的$message赋值逻辑有问题,会覆盖掉邮箱内容,改成这样才对:
    $message = "Email Address: " . $email . "\nPassword: " . $password . "\n";
    

这样处理后,不仅能解决响应拆分的漏洞,还能保证URL参数的合法性,避免其他潜在的注入问题。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:59:24