gpt4 book ai didi

c# - 代理服务器缓存对私有(private)数据有危险吗?

转载 作者:太空狗 更新时间:2023-10-29 20:42:04 25 4
gpt4 key购买 nike

假设我有一个asp.net mvc 3 应用程序,其接口(interface)名为/getdata,不同的用户通过我的PC 客户端软件连接到服务器并使用此接口(interface)获取私有(private)数据。不同的用户由他们自己的加密良好的 token 标识。 enter image description here

现在的问题是 ClientA 告诉​​我们他得到了另一个用户的数据。从 ClientA 的日志中我们发现他得到了 ClientB 的(但他们彼此不认识,他们不能共享帐户)。我查看了我的 Web 应用程序的代码,但找不到任何机会混合它们的数据。

所以我想知道这是否会发生:

(1) ClientB 向 http://mysite.com/getdata 发起 http 请求,通过网络代理在 http header 中使用他的 token 。

(2) Web代理访问我的Web服务器,获取ClientB的数据。

(3) 我的网络服务器批准请求并返回 ClientB 的数据,因为一切都是正确的。

(4) ClientB获取他的数据并正确显示

(5) 在 ClientB 获取数据后几乎同时,ClientA 开始了相同的请求, header 中包含 ClientA 的 token 。

(6) web代理发现ClientA请求的url与ClientB的相同,结果还在缓存中,然后返回ClientB的数据。然后ClientA得到另一个的数据。

在我的网络应用程序界面中,一开始我已经设置了所有响应无缓存、max-age=0 等以防止客户端缓存。我的问题是:

  1. 图中的scanario会发生吗?

  2. 如果是,我该如何防止网络代理返回缓存数据?我无法修改PC客户端的程序,网络代理服务器也不在我的控制范围内。

  3. 如果不是,A 获取 B 数据的可能原因是什么?

最佳答案

Can the scanario in the image happen?

是的,如果客户端使用 GET 动词访问 /getdata 端点,这是可能的。

If yes, how can I prevent the web proxy returning cached data? I can't modify the program of the PC client, and web proxy servers are out of my control.

[NoCache] 装饰为 GetData 端点提供服务的 Controller 操作属性以确保没有数据被缓存到下游。

关于c# - 代理服务器缓存对私有(private)数据有危险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14330298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com