如何禁止代理服务器对页面的缓存

liujiboy 2004-11-10 08:56:47
很多代理服务器会对页面进行缓存,对于信息系统来说,这会出现严重的问题。

A用户可能访问到B用户被缓存的页面。

因此需要禁止代理服务器缓存页面。
但是<META http-equiv=Pragma content=no-cache>
<META http-equiv=Cache-Control content=no-cache>
<META http-equiv=Expires content=0>
这几个标记我试了之后都没有用处,请问各位有什么好的方法。
...全文
509 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiboy 2004-11-13
  • 打赏
  • 举报
回复
“基于Web的MIS系统”,一般都用企业专线来连接,至少也得是VPN,你们的MIS居然完全暴露在公众网上?吓我一跳。。。
=========================================================================================
这有什么奇怪的?很多不太重要的MIS都是在公网的。
sina、sohu和yahoo的邮箱系统也都是暴露在公网了的。
顺带说一下,这三个邮箱系统都是不安全的。
只要是处于同一个代理服务器下面就可能互相攻击。
当然我不知道他们的邮箱是不是用了cookie,如果是就更糟糕了。

比如A和B同时通过一个代理访问邮箱。A进行了登陆,进入了URL为a.jsp的页面并进行操作。
如果服务器采用cookie的方式来保持session,这就糟糕了。
B用户可以不登陆,直接在浏览器中打a.jsp,让和就可以进入a.jsp,而且看到的是A的内容。

很多代理服务器会缓存cookie,并且很可能长时间不清空。通过代理服务器访问的朋友,不妨试试,看那些网站可以这么访问。记住千万不能登陆哦,否则就没有这个效果呢。

微软的Hotmail就对此作了处理,登陆的时候是先跳到一个https的页面,然后再跳转的。
lenoli 2004-11-11
  • 打赏
  • 举报
回复
客户机IE>>Internet选项>>Temporary Internet files栏的设定按钮>>新弹出页面顶上的option box,
liujiboy 2004-11-11
  • 打赏
  • 举报
回复
用这个吧,可以的
<%
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
======================================================================================
已经测试这种方法是不可行的。
我现在总结了一下,对于基于Web的MIS系统最好用SSL,而且最好是全部页面都加SSL。
同时每个页面的权限控制一定要做好。
对于基于Web的电子商务系统,付款部分一定要加SSL,其他可以不加。
类似于CSDN这种网站,根本没有必要用SSL。

加SSL的原则是,安全等级越高越需要加。
以前我还认为Web的MIS系统可加可不加,现在才发现最好是全都加上。
如果两个客户端用代理访问,那么肯定会发生严重的问题。
我们的系统可能看上去不如银行系统那么重要,但是这部分的安全性要求却是一样的。
SSL提供的仅仅是很初级的安全性,高级的安全性SSL也做不了的。
访问速度和性能当然会有影响,不过能够更有效的保障数据的正确性。

在HTTP Header中加属性的方法是不可靠的,代理服务器可以忽略这些。
像CSDN这样的网站内容被代理服务器缓存也是没什么关系的,而基于WEB的信息系统被代理缓存了就糟糕了.
梦想家起飞 2004-11-11
  • 打赏
  • 举报
回复
“基于Web的MIS系统”,一般都用企业专线来连接,至少也得是VPN,你们的MIS居然完全暴露在公众网上?吓我一跳。。。
liujiboy 2004-11-10
  • 打赏
  • 举报
回复
gnodiew(闪电神) :
具体说说是怎么做的。
elephant78 2004-11-10
  • 打赏
  • 举报
回复
用这个吧,可以的
<%
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
梦想家起飞 2004-11-10
  • 打赏
  • 举报
回复
用加密套接字当然没问题了,只是这样会比较慢一点,如果服务器负荷不是很重并发访问量不是很大的话也就无所谓了。话说回来,如果真的对安全性要求很高的话,你还真非得用加密套接字不可。
xueqs 2004-11-10
  • 打赏
  • 举报
回复
mark
kaymo 2004-11-10
  • 打赏
  • 举报
回复
gz & up
梦想家起飞 2004-11-10
  • 打赏
  • 举报
回复
也同意 gnodiew(闪电神) 的观点。
Magnus 2004-11-10
  • 打赏
  • 举报
回复
这个问题不用设置代理服务器,我也遇到过。
客户机IE>>Internet选项>>Temporary Internet files栏的设定按钮>>新弹出页面顶上的option box,
选择第一个,就可以了
射天狼 2004-11-10
  • 打赏
  • 举报
回复
在IE设置里,将缓存设置为每次访问此页时检查试一下呢!!
gnodiew 2004-11-10
  • 打赏
  • 举报
回复
常用的办法就是调用每个页面的后面加个每次变化的参数如时间之类的或UUID试一下,通常管用
如test.jsp?sessionid=20041110091001123
梦想家起飞 2004-11-10
  • 打赏
  • 举报
回复
对于动态页面来说应该是不会被代理服务器缓存的吧?如果每个页面的安全性都很重要,那么可以用过滤器来对每个页面进行session合法性校验。
icy_csdn 2004-11-10
  • 打赏
  • 举报
回复
应该在代理服务器上配置吧,
treeroot 2004-11-10
  • 打赏
  • 举报
回复
应该就是这样了,如果客户端直接访问,不通过代理得话,那么每次都要重新请求数据.
但是如果代理服务器把你得http头去掉了,那有可能客户端又不用重新请求了,我觉得
关键在于代理有没有对页面进行处理
vongood 2004-11-10
  • 打赏
  • 举报
回复
gz
liujiboy 2004-11-10
  • 打赏
  • 举报
回复
我知道一个解决方法了,就是用ssl
已经测试没有问题了。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧