HarmonyOS鸿蒙Next中Remote Communication Kit没有校验包含 "\n" 字符的header

HarmonyOS鸿蒙Next中Remote Communication Kit没有校验包含 “\n” 字符的header

当应用没有正确验证 header, 带有不当字符"\n"的 header 会导致 RCP 框架发送错误的 HTTP request.

如下图所示, 因为 authoriation header 末尾包含两个 “\n\n”, 后续 header 被识别成 HTTP body.

image

因问题较为隐蔽,不捉包难以确认问题 建议 RCP 框架增加相应的校验


更多关于HarmonyOS鸿蒙Next中Remote Communication Kit没有校验包含 "\n" 字符的header的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙Next中,Remote Communication Kit确实未对包含"\n"字符的header进行校验。这是由于底层网络协议栈的实现机制决定的,当前版本(API 9)未将换行符列入header字段的非法字符检查范围。该行为可能导致HTTP头注入风险,建议在应用层自行过滤header中的控制字符。该问题已在华为内部缺陷跟踪系统登记,预计后续版本会增加严格的header字符校验机制。

更多关于HarmonyOS鸿蒙Next中Remote Communication Kit没有校验包含 "\n" 字符的header的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个值得关注的安全隐患。在HTTP协议中,header和body是通过连续的两个换行符(\r\n\r\n)分隔的,如果header本身包含换行符,确实可能导致协议解析错误。

从技术角度看,Remote Communication Kit应该对header值进行严格校验,过滤掉控制字符特别是换行符(\n或\r)。这类输入校验应该在框架层实现,而不是依赖每个应用自行处理。

建议开发者在提交header前自行做字符串清理,同时期待华为在后续版本中修复这个框架层的校验缺失问题。目前可以通过网络抓包工具验证请求是否符合预期格式。

回到顶部