标签: session-timeout

PHP中的会话超时:最佳实践

session.gc_maxlifetime和之间的实际区别是session_cache_expire()什么?

假设我希望用户会话在非活动15分钟后无效(在首次打开后不是15).哪一个会帮助我?

我也知道我可以做的session_set_cookie_params(),可以设置用户的cookie在一段时间内到期.但是,cookie到期以及服务器端的实际会话到期时间并不相同; 这也会在cookie过期时删除会话吗?

我所拥有的另一个解决方案是$_SESSION['last_time'] = time() 每个请求都很简单 ,并将会话与当前时间进行比较,基于此删除会话.我希望有一个更"内置"的机制来处理这个问题.

谢谢.

php security cookies session-timeout

35
推荐指数
3
解决办法
3万
查看次数

Logout/Session超时捕获spring security

我正在使用spring/spring-security 3.1并希望在用户注销时(或者如果会话超时)采取某些操作.我设法为注销完成了操作,但是对于会话超时,我无法使其正常工作.

在web.xml中我只指定了ContextLoaderListener(这可能是问题吗?),当然还有DelegatingFilterProxy.

我像这样使用自动配置.

    <security:http auto-config="false" use-expressions="false">
    <security:intercept-url pattern="/dialog/*"
        access="ROLE_USERS" />
    <security:intercept-url pattern="/boa/*"
        access="ROLE-USERS" />
    <security:intercept-url pattern="/*.html"
        access="ROLE-USERS" />

    <security:form-login login-page="/auth/login.html"
        default-target-url="/index.html" />
    <security:logout logout-url="/logout"
         invalidate-session="true"
        delete-cookies="JSESSIONID" success-handler-ref="logoutHandler" />
</security:http>

<bean id="logoutHandler" class="com.bla.bla.bla.LogoutHandler">
    <property name="logoutUrl" value="/auth/logout.html"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

当用户单击注销时,将调用注销处理程序,这将调用数据库.

但是如何处理会话超时???

处理它的一种方法是在用户登录时将用户名注入会话,然后使用普通的httpsessionlistener并在会话超时时执行相同的操作.

弹簧安全性是否有类似的方式,因此当spring发现会话超时时,我可以在那里挂钩,访问Authentication并从那里获取UserDetails并进行清理.

java spring-security session-timeout

32
推荐指数
2
解决办法
8万
查看次数

更改spring Web应用程序的默认会话超时

我必须测试一个由spring和jsp编写的Web应用程序.应用程序的默认会话超时为30分钟.

我想减少会话超时.为此,我在web.xml文件中进行了更改tomcatInstallationLocation/conf/.但它不起作用.默认配置tomcatInstallationLocation/conf/web.xml是 -

<session-config>
    <session-timeout>30</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

我刚刚改变时间并做到了 -

<session-config>
    <session-timeout>5</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

但仍然不起作用.据我所知,在这种情况下,我必须改变我的弹簧应用程序web.xml.但我不确定.谁能帮我?

提前致谢.

java spring tomcat session-timeout

29
推荐指数
1
解决办法
2万
查看次数

通过浏览器检测用户不活动 - 纯粹通过javascript

在构建监视器时,监视器将监视用户在浏览器上的任何活动,例如单击按钮或在文本框上键入(而不是鼠标悬停在文档上).因此,如果用户长时间没有活动,会话将超时.

我们需要在没有jquery或其他任何东西的情况下完成它.我可以使用ajax.另一端的java servlet更可取.

javascript javascript-events session-timeout

25
推荐指数
2
解决办法
6万
查看次数

CakePHP会话仅在不活动时超时

所以这个问题的关键在于如何防止CakePHP仅在一段时间不活动后对会话进行解除身份验证.

因此,如果用户什么都不做,那么我希望CakePHP在30分钟后将其注销.但是,如果用户选择在第28分钟不活动时访问页面,那么CakePHP应该"重置"它的超时计数器.

目前还没有发生这种情况.无论活动如何,CakePHP在我的核心配置(app/Config/core.php)中的指定时间后超时.

这是我的配置代码:

Configure::write('Session', array(
    'defaults' => 'cake',
    'timeout' => '30'
));
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

authentication cakephp session-timeout

24
推荐指数
2
解决办法
2万
查看次数

ASP.NET推送重定向会话超时

我正在寻找一个教程,博客条目,或者在会话到期时自动推送用户(即没有回发)的网站背后的技术的一些帮助.任何帮助表示赞赏

asp.net redirect server-push session-timeout

23
推荐指数
3
解决办法
7万
查看次数

如何使用spring-security和jQuery处理过期的会话?

我在我的应用程序中使用spring-security和jQuery.主页使用Ajax动态加载内容到选项卡.一切都很好,但有时我的选项卡中有登录页面,如果我输入凭据,我将被重定向到没有标签的内容页面.

所以我想处理这种情况.我知道有些人使用ajax身份验证,但我不确定它是否适合我,因为它对我来说看起来很复杂,我的应用程序不允许任何访问而无需登录.我想为所有ajax响应编写一个全局处理程序,window.location.reload()如果我们需要进行身份验证,它将会执行.我认为在这种情况下,最好是获取401错误而不是标准登录表单,因为它更容易处理.

所以,

1)是否可以为所有jQuery ajax请求编写全局错误处理程序?

2)我如何自定义spring-security的行为以便为ajax请求发送401错误,但是常规请求像往常一样显示标准登录页面?

3)你可能有更优雅的解决方案吗?请分享.

谢谢.

authentication ajax jquery spring-security session-timeout

23
推荐指数
3
解决办法
4万
查看次数

对于asp.net中的会话状态模式,哪一个更好,InProc或SQL Server?

我正在开发一个ASP.NET网站.我想知道在会话状态模式下哪一个更好:InProc或SQL Server?我需要了解你在这个问题上的经验.

另一个问题是关于cookieless属性.如果我将其设置为true,我的网站是否有任何安全漏洞?在我在MSDN站点中看到的所有示例中,此属性都设置为false.

最后一个问题是关于Timeout属性.当我将其设置为InProc模式时,此属性是否影响我的会话生命周期?

asp.net session-state session-timeout cookieless inproc

23
推荐指数
2
解决办法
4万
查看次数

手动设置会话到期时间 - CodeIgniter

如何在codeigniter中动态设置会话到期时间?

例如,如果用户登录并具有角色admin,则到期时间应该比用户登录没有admin角色的用户长.

谢谢.

codeigniter session-timeout

22
推荐指数
2
解决办法
8万
查看次数

Yii用户在15-30分钟后退出,尽管会话超时设置为至少1天

我在下面列出了Yii配置文件的相关部分:

return array(
...
    'components'=>array(
        'session' => array(
            'timeout' => 86400,
        ),
        'user'=>array(
            'allowAutoLogin' => true,
            'autoRenewCookie' => true,
            'authTimeout' => 31557600,
        ),
    ...
    ),
...
);
Run Code Online (Sandbox Code Playgroud)

我也进入了php.ini并设置session.gc_maxlifetime = 86400但是这仍然没有解决问题.

目前,我绝对不知道还有什么可能导致它超时并在大约15-30分钟不活动后将用户退出.理想情况下,用户应保持登录状态至少一天不活动(除了关闭浏览器窗口,允许浏览器首选项).

我已经拖网了谷歌,Yii和堆栈溢出,只是找不到我忽略的任何东西......但显然我忽略了一些东西.如果有人能帮助我,我会非常感激.


我们要求提供用于登录用户的典型代码示例,其中包含以下内容:

$identity = new UserIdentity('facebook', $id, $user->name, $user->email);
$loggedIn = Yii::app()->user->login($identity);
$this->subscriptionChecker->updateCurrentUserSubscribed();
Run Code Online (Sandbox Code Playgroud)

这在任何时候Yii::app()->user->login()被称为非常典型


在Chrome中,以下是我为该网站提供的Cookie及其到期日期(清除所有Cookie并仅登录后):

PHPSESSID expires When the browsing session ends

// I'm informed these are set by google analytics  
__utma created Friday, 12 October 2012 14:05:31 expires Sunday, 12 October 2014 14:05:31

__utmb …
Run Code Online (Sandbox Code Playgroud)

php cookies session session-timeout yii

22
推荐指数
1
解决办法
3万
查看次数