#33555·angular-cli

Angular SSR 路由政策混淆可曝光公共缓存头下的仅客户数据

作者: SkyZeroZx创建于 2026年7月12日更新于 2026年9月14日
标签area: @angular/ssrgemini-triaged

说明

Angular SSR可以从一个路由中选择服务器-路由元数据,而Angular路由器则在请求的URL包含某些模棱两可的路由表时会制作出不同的路由.

示例

页:1 /简介; /简介/公开


在这两种情况下,一个路由被配置为“RenderMode”。 客户端可以在服务器上意外渲染出,同时继承另一个“ServerRoute”的公共缓存头。

最小复制


最小配置


从“ angular/ ssr” 导入{ RenderMode, 服务器路特} ;

导出 Const 服务器路特: 服务器路特 [] = [
{
路径 : “ profile”
(原始内容存档于2016-10-12). CommerMode: RenderMode. 客户
标题 : {
"Cache - Control":"私人的,没有商店",
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
{
路径 : “ profile/ public” ,
(原始内容存档于2016-10-12). CommerMode: RenderMode. 服务器
标题 : {
“缓存控制”:“公开,最大年龄=300”,
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
{
路径: '**',
(原始内容存档于2016-10-12). CommerMode: RenderMode. 服务器
标题 : {
“缓存控制”:“公开,最大年龄=300”,
{\fn华文楷体\fs16\1cHE0E0E0}
{\fn华文楷体\fs16\1cHE0E0E0}
; ; ;

/概况 ' 部分通过安全部门改革REQEST ' 标志读取一个善意的请求生成标记。

  • 复制步骤

请求仅限客户端的普通路由 :

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 卷轴 -i
-H 'Cookie: session=PIVATE-VALUE" (中文(简体) ). http://localhost: 4000/ profile (英语).

bash

初始 HTML 不包含请求产生的值 。

请求任一已设计路径 :

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
卷轴 -i \
-H 'Cookie: session=PIVATE-VALUE" (中文(简体) ).
'http://localhost: 4000/profile;' 页面存档备份,存于互联网档案馆.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 卷轴 -i
-H 'Cookie: session=PIVATE-VALUE" (中文(简体) ). http://localhost:4000/profile// (中文(简体) ).


实际行为

精心拟订的请求可以:

- 将 " /外观 " 部分置于服务器上;
- 在最初的HTML中披露请求数据;
- 应用属于另一服务器路径的“缓存控制:公共”元数据。

预期行为

用于选择“交付Mode”、状态和响应头的路线必须始终符合其身体被渲染的路线。

配置为“ 渲染模式” 的路由 。 客户端不应通过替代的URL表示方式交付服务器。



您的环境

页:1
角22.X号

还有什么关系吗?

这一点以前曾在https://issuetracker.google.com/u/1/issues/518988455上报告

内容来源: angular/angular-cli