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 (英语).
初始 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