Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 237

CRLF 注入

CRLF 注入 是什么?

CRLF 注入通过向 HTTP 头、日志或其他文本协议中插入回车换行符,以伪造新行并改变协议语义的攻击。


CRLF 注入利用了 CR(0x0D)和 LF(0x0A)字节在许多文本协议中作为行终止符的特殊含义。当应用程序将未经校验的用户输入反射到 HTTP 响应头、日志条目、SMTP 命令或 LDAP 查询中时,攻击者可以注入 CRLF 字节对及附加内容,以伪造 HTTP 头、拆分响应、隐藏日志条目或夹带命令。在 Web 场景中,最严重的形式是 HTTP 响应拆分,可污染共享缓存、设置任意 Cookie 或在受控响应体中注入 XSS。防御方法包括拒绝出现在头部输入中的 CR/LF、使用会进行转义的高层 API,以及严格的日志编码器。

示例

  1. 01

    Set-Cookie: id=foo%0d%0aSet-Cookie: admin=true — 通过 CRLF 添加第二个 Cookie。

  2. 02

    Location: /redir%0d%0aContent-Length:0%0d%0a%0d%0a<html>... — HTTP 响应拆分。

常见问题

CRLF 注入 是什么?

通过向 HTTP 头、日志或其他文本协议中插入回车换行符,以伪造新行并改变协议语义的攻击。 它属于网络安全的 攻击与威胁 分类。

CRLF 注入 是什么意思?

通过向 HTTP 头、日志或其他文本协议中插入回车换行符,以伪造新行并改变协议语义的攻击。

CRLF 注入 是如何工作的?

CRLF 注入利用了 CR(0x0D)和 LF(0x0A)字节在许多文本协议中作为行终止符的特殊含义。当应用程序将未经校验的用户输入反射到 HTTP 响应头、日志条目、SMTP 命令或 LDAP 查询中时,攻击者可以注入 CRLF 字节对及附加内容,以伪造 HTTP 头、拆分响应、隐藏日志条目或夹带命令。在 Web 场景中,最严重的形式是 HTTP 响应拆分,可污染共享缓存、设置任意 Cookie 或在受控响应体中注入 XSS。防御方法包括拒绝出现在头部输入中的 CR/LF、使用会进行转义的高层 API,以及严格的日志编码器。

如何防御 CRLF 注入?

针对 CRLF 注入 的防御通常结合技术控制与运营实践,详见上方完整定义。

CRLF 注入 还有哪些其他名称?

常见的别称包括: 回车换行注入, 日志注入。

相关术语