关于SESSION过期跳转到登录界面的问题。

问题描述

我看了一下,很多人判断SESSION过期返回登录界面是用的if(Session["User"]==null){Response.Redirect("Login.aspx");}

但是这么写会引发CrossSiteHistoryManipulation安全问题。怎么修改才不会引发这个安全问题呢、??求解决啊。。。。

解决方案

解决方案二:
说白了不就是不让用后退么。。。整这么专业的名词,害得我谷歌了半天。好多招式,比如js禁用浏览器后退按钮,这个做法挺傻B的。。javascript:window.history.forward(1);

或者禁用缓存<metahttp-equiv="Expires"CONTENT="0"><metahttp-equiv="Cache-Control"CONTENT="no-cache"><metahttp-equiv="Pragma"CONTENT="no-cache">

或者用新页面替换历史记录javascript:location.replace(this.href)

这种东西没有太好的解决方案、、。。。最安全的办法就是客户端和服务端混合验证。例如数据提交的时候进行验证
解决方案三:
就算用了回退也只能看到他之前看到过的页面,至于在这个页面上再次进行一些操作后台也应该会有一些制御~~说白了就是看了也只能白看~~
解决方案四:
引用1楼hrabeyond的回复:

说白了不就是不让用后退么。。。整这么专业的名词,害得我谷歌了半天。好多招式,比如js禁用浏览器后退按钮,这个做法挺傻B的。。javascript:window.history.forward(1);

或者禁用缓存<metahttp-equiv="Expires"CONTENT="0"><metahttp-equiv="Cache-Control"CONTENT="no-cache"><metahttp-equiv="Pragma"CONTENT="no-cache">

或者用新页面替换历史记录javascript:location.replace(this.href)

这种东西没有太好的解决方案、、。。。最安全的办法就是客户端和服务端混合验证。例如数据提交的时候进行验证

CrossSiteHistoryManipulation,好专业的名词
解决方案五:
引用3楼wpfLove的回复:

Quote: 引用1楼hrabeyond的回复:
说白了不就是不让用后退么。。。整这么专业的名词,害得我谷歌了半天。好多招式,比如js禁用浏览器后退按钮,这个做法挺傻B的。。javascript:window.history.forward(1);

或者禁用缓存<metahttp-equiv="Expires"CONTENT="0"><metahttp-equiv="Cache-Control"CONTENT="no-cache"><metahttp-equiv="Pragma"CONTENT="no-cache">

或者用新页面替换历史记录javascript:location.replace(this.href)

这种东西没有太好的解决方案、、。。。最安全的办法就是客户端和服务端混合验证。例如数据提交的时候进行验证

CrossSiteHistoryManipulation,好专业的名词

这么专业的名词不是我弄的,,是人家软件测评公司给的。程序要做安全测试,好多安全漏洞要补上。
解决方案六:
Response.Cache.SetNoStore();

禁止页面缓存,给你的页面加这个就可以不能后退了
解决方案七:
我得做法就是存在退出功能的那个页面加Response.Cache.SetNoStore()就可以了然后ashx当判断到用户没登陆时,返回特定的Header比如Response.AddHeader("Auth_Error","{code:2001}");

前台拦截ajax请求;(function($){varajax=$.ajax;$.ajax=function(s){varold=s.error;varerrHeader=s.errorHeader||"Auth_Error";s.error=function(xhr,status,err){varerrMsg=window["eval"]("("+xhr.getResponseHeader(errHeader)+")");if(errMsg&&errMsg.code){switch(errMsg.code){case2001:top.window.location.reload();break;case2003:top.alert('很抱歉,你没有执行该操作的权限');break;}}if(old){old(xhr,status,errMsg||err);}}ajax(s);}})(jQuery);

这段js是我从网上找到的。。。然后做了点小修改,反正就是让最外层的页面刷新,通过后台的验证机制来确认是返回登录还是可以SOS
解决方案八:
楼主考虑得很周全,但本人感觉没有必要管这个.
解决方案九:
引用3楼wpfLove的回复:

CrossSiteHistoryManipulation,好专业的名词

老外放个屁,有时候也会被某些公司当作香水的。
解决方案十:
比如说有个人,把你的网页放到他自己的iframe内,然后它查看history.length。于是有人就杞人忧天了。那么csdn上有许多监视webbrowser的变化,岂不是比这个强多了?
解决方案十一:
引用7楼tcmakebest的回复:

楼主考虑得很周全,但本人感觉没有必要管这个.

我也不想管,可安全测评过不去啊。。

时间: 2024-10-11 13:08:15

关于SESSION过期跳转到登录界面的问题。的相关文章

spring security刷新会跳转到登录界面

问题描述 我用springsecurity来做安全控制,跟struts框架结合.如果刷新action页面的时候,都会跳转到登录界面,已经设置了rememberme功能.如果直接访问jsp页面的话,就不会出现这个问题. 解决方案 解决方案二:ss很繁琐,还不如自己写权限控制.解决方案三:有一个现成的框架还是比自己从头写还是好些.

重写 ajax 实现 session 超时跳转到登录页面实例代码

问题:使用window.location.href来跳转页面的时候,后端只需实现一个过滤器就可以在session超时的情况下重定向到登陆页面.但是使用ajax呢?使用ajax来执行会发生302错误,并且页面不可能跳转.下面就针对这个问题来贴上我的前后端代码. 1.session过滤器 import java.io.IOException; <p style="text-align: center"><img alt=""import javax.s

Jsp中解决session过期跳转到登陆页面并跳出iframe框架的方法_JSP编程

当session过期后可以用过滤器来设置重定向页面 复制代码 代码如下: public class ActionFilter extends HttpServlet implements Filter {private FilterConfig filterConfig;public void init(FilterConfig config) {this.filterConfig = config;}public void doFilter(ServletRequest servletRequ

Jsp中解决session过期跳转到登陆页面并跳出iframe框架

当session过期后可以用过滤器来设置重定向页面.  代码如下 复制代码 public class ActionFilter extends HttpServlet implements Filter { private FilterConfig filterConfig; public void init(FilterConfig config) { this.filterConfig = config; } public void doFilter(ServletRequest servl

关于客户端点击刷新按钮后跳转到登录界面的问题

问题描述 就像工商银行那样的,进入B/S客户端以后,只要点击刷新按钮,就跳转到登录页面去,这样的操作怎么做啊,谁能详细的给说说,偶是新人,没虾米经验,各位大虾给点意见吧,谢谢 解决方案 解决方案二:这个应该是类似于处理重复提交的问题吧.没有遇到过,期待答案/....解决方案三:不懂,难道它icbc用了框架?解决方案四:做个用户权限验证如果登录过可以访问下个页面没登录过,转到登录页面

为嘛总是跳转回登录界面?

问题描述 登录代码:<divid="loginButton"><asp:ImageButtonID="ImageButton1"runat="server"ImageUrl="images/login.gif"OnClick="ImageButton1_Click"/><asp:ImageButtonID="ImageButton2"runat="

JS 退出系统并跳转到登录界面的实现代码

Index.aspx  Login.aspx 在Index.aspx页面写入JS代码: <script language="javascript" type="text/javascript">     function logout(){ //        if (confirm("您确定要退出控制面板吗?"))             top.location = "../Login.aspx";      

JS 退出系统并跳转到登录界面的实现代码_javascript技巧

Index.aspx页面 Login.aspx 在Index.aspx页面写入JS代码: 复制代码 代码如下: <script language="javascript" type="text/javascript">    function logout(){//        if (confirm("您确定要退出控制面板吗?"))            top.location = "../Login.aspx&quo

Session过期后自动跳转到登录页面的实例代码_java

最近做了一个项目其中有需求,要实现自动登录功能,通过查阅相关资料,打算用session监听来做,下面给大家列出了配置监听器的方法: 1.在项目的web.xml文件中添加如下代码: <!--添加Session监听器--> <listener> <listener-class> 监听器路径 </listener-class> </listener> 2.编写java类. public class SessionListener implements