加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 代理服务器缓存对私有数据有危险吗?

发布时间:2020-12-15 07:50:49 所属栏目:百科 来源:网络整理
导读:假设我有一个名为/ getdata的接口的asp.net mvc 3应用程序,不同的用户通过我的PC客户端软件连接到服务器并使用此接口获取私有数据.不同的用户通过他们自己的良好加密的令牌来识别. 现在的问题是ClientA告诉我们他得到了另一个用户的数据.从ClientA的日志中我
假设我有一个名为/ getdata的接口的asp.net mvc 3应用程序,不同的用户通过我的PC客户端软件连接到服务器并使用此接口获取私有数据.不同的用户通过他们自己的良好加密的令牌来识别.

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

所以我想知道这会发生:

(1)ClientB通过Web代理在http头中启动一个http请求到http://mysite.com/getdata,其令牌.

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

(3)我的Web服务器批准请求并返回ClientB的数据,因为一切正确.

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

(5)在ClientB获取数据后几乎同一时间,ClientA启动相同的请求,并在标头中添加ClientA的令牌.

(6)Web代理找到ClientA请求的URL与ClientB相同,结果仍在缓存中,然后返回ClientB的数据.然后ClientA获取另一个数据.

在我的Web应用程序界面中,在开始时我已经设置了所有响应no-cache,max-age = 0等等以防止客户端缓存.我的问题是:

>图像中的scanario可以发生吗?
>如果是,我如何阻止Web代理返回缓存数据?我无法修改PC客户端的程序,并且Web代理服务器不受我的控制.
>如果不是,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端点提供服务的控制器操作,以确保没有数据缓存到下游.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读