- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请参阅问题末尾的更新
在 Rails 4 中,我知道 session 在默认情况下只应该存在于浏览 session 中。如果您关闭浏览器, session 将不复存在。
但是,我发现情况并非如此。我有一个使用 Rails 提供的所有默认设置的 Rails 4 应用程序。我正在处理一些身份验证代码并遇到了这个问题。
当用户登录系统时,他们可以通过复选框选择“记住我”。当他们选中该框时, session 应该有 2 周的到期时间。目标是当用户登录系统并关闭浏览器时,他可以再次打开浏览器并使用该应用程序,而无需再次进行身份验证。
另一方面,如果用户不想选中“记住我”框并登录到应用程序并关闭浏览器,当浏览器再次打开时,用户应该被要求再次进行身份验证,因为他的 session “浏览器关闭时“已过期”。
问题是我的 session 永远不会消失。我测试了一些简单的代码,在第 1 页我在 Controller 中设置了一个 session 变量,然后在第 2 页我显示了该 session 。当我关闭浏览器并转到第 2 页(不是第 1 页,因此未再次设置 session )时, session 仍然像以前一样存在。
我认为 session 应该在浏览器默认关闭时过期?我也用“cookies”而不是 session 来尝试这个,并得到相同的结果。
简而言之,当用户关闭浏览器时,我如何获得一个过期/死亡的 session /cookie?如果用户不希望所有 session 持续存在,对我来说似乎不是很安全,而且我不会让我的用户每次关闭浏览器时都删除他们的 cookie(可能在公共(public)计算机上)他们的登录信息应该只保留到他们关闭浏览器为止)。
更新我想我找到了可能导致问题的原因。我使用 Chrome 作为我的浏览器,当浏览器关闭和打开时,我将它设置为“记住我离开的地方”。这似乎可以保存所有 session /cookie。我也用 Gmail 验证了这一点。如果您设置了“记住我离开的地方”,但没有在 Gmail 中设置记住我标记,当您关闭/打开浏览器时,Gmail 会立即重新打开。如果您告诉 Chrome 在打开时打开一个新标签页,那么 Gmail 会像我预期的那样将您发送到登录页面。
这样解决了一个问题,但总体问题依然存在。我怎样才能使这个“安全”?假设您在公共(public)计算机上,恶意用户将浏览器设置为在打开浏览器时“记住我离开的地方”。因此,您登录了一个应用程序(例如 Gmail),但没有选中“记住我”框。因此,当您关闭浏览器时,您希望您的登录是“安全的”。但是,如果另一个用户打开浏览器备份,他已经登录到您的应用程序。
这是我可以切实避免的事情吗?如果 Gmail 有这个缺陷(有一群非常聪明的开发人员),我应该为这种情况的存在而烦恼吗?
最佳答案
浏览器的“记住我离开的地方”功能确实是问题所在。删除该选项会导致我的 cookie/ session 出现“预期”行为。
关于security - 导轨 4 : session value never "expires" or dies when browser closes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20449641/
这是在 MacOS 上通过自制软件安装了 PHP 8.1.10 ... 只是一个空白的 index.php 代码,只有这段代码...... 然后 .. 在我的浏览器中呈现以查看... Fatal
我相信所有这些(甚至是 die() 或 die(0))都是相同的。如果它们不相同,那么哪个更适合成功退出脚本?如果它们相同,是否有任何首选标准表明脚本成功完成?我倾向于使用 exit;. 编辑:所有答
在对项目中一个非常模糊的错误进行了一些认真的调试之后,我能够得到这个简短的代码。一个没有死亡的死亡调用。 该问题仅在调用 script.pl 时发生。如果直接调用Class_A,那么die调用就会成功
注意:我正在使用输出缓冲。它只是包含在 head() 和 foot() 函数中。 我使用以下模板在我当前的 PHP 项目中创建页面: 以下示例是否适合使用 die()?另外,如果有的话,这可能给
我想这样写: die "Error in file $0 line number $line_number_of_this_cmd_in_file \n"; 在我的 perl 脚本文件中。 有什么帮助
下面是我尝试执行的代码 $a=0; if($a==0){die print"zero"}; 我得到如下输出 1 at test.pl line 2 Zero 我想知道首先打印的 1 是什么,
我使用以下代码在 perl 中运行一个简单的文件测试: my $f1 = "$pre_file"; unless (-e $1) { print "\n Pre_check file does n
我目前正在制作一个注册页面。它包括密码散列和验证。当我使用“die”时,它会停止表单并显示错误。我想在同一页面上显示错误。 $_POST['username'] ); try
我总是在发出 die() 命令之前调用 mysqli_close()。 这很乏味,有时会被遗忘,但我想确定 die 命令是关闭所有 mysql 连接还是仍然保持打开状态? 我无法通过 PHP 检查,因
让 die() 存在于生产环境中是否被认为是不好的做法?刚好看到这篇文章http://www.phpfreaks.com/blog/or-die-must-die作者抨击在生产环境中使用这种东西的人。
当我刚开始学习 PHP 时,我会编写类似于这里的查询语句: mysql_query("SELECT * FROM `table`") or die(mysql_error()); 目前最好的方法是什么
有没有人在 Python 中使用类似的东西: def die(error_message): raise Exception(error_message) ... check_somethin
我正在使用以下行进行一个简单的系统调用,该调用有效: system ("mkdir -p Purged") or die "Failed to mkdir." ; 执行脚本确实会进行系统调用,我可以找
我有一个通过 die 引发异常的脚本.当我捕捉到异常时,我想输出没有附加位置信息的消息。 这个脚本: #! /usr/bin/perl -w use strict; eval { die "M
在Perl中,如果程序因错误退出,则可以编写$SIG{__DIE__}处理程序来执行代码。 bash是否提供类似的功能? 这是我要尝试的操作:我有一个bash脚本,该脚本创建一个新目录并调用几个命令,
自从我创建 HTA 代码以来,我一直使用 IE :( 我们需要将更改事件捕获在 中元素,但你猜怎么着,IE 不支持该事件。 所以我创造了一种模仿它的方法。与 单击时显示 略低于。那部分工作正常。问题
this => set_time_limit (), Die() 可以用来取消文件上传吗。 即当用户单击按钮时,set_time_limit () 函数将执行。 它会停止上传吗? 最佳答案 您最好使用
我正在开发一些项目。我想控制不同的错误。我知道在所有流行的框架和 php 项目中都有不同的异常。但我认为这不是必需的工作。如果发生错误,我们可以用我们的消息制作 die()。1. Exceptions
最近我参加了 Jeffrey Richter 的有关 .NET 的培训类(class)。他提到了一种编码策略“死亡很棒”。也就是说,即使在程序或事件循环的根部也不要编写“catch (Exceptio
假设我们的类中有以下代码: //class code TextBox t = new TextBox(); ListBox l = new ListBox(); 我们有两种可能的情况: 首先,我们将
我是一名优秀的程序员,十分优秀!