我一直在研究PHP会话处理,并且遇到了session.gc_maxlifetime1440秒的值.我一直在想为什么标准值是1440以及如何计算?这个计算的基础是什么?
保持会话有多长时间?您建议使用session.gc_maxlifetime的最小值/最大值?值得越高,Web-App对于会话劫持越脆弱,我会说.
我正在使用快递框架.我想从socket.io访问会话数据.我尝试使用client.listener.server.dynamicViewHelpers数据表达dynamicHelpers,但我无法获取会话数据.有一个简单的方法吗?请参阅代码
app.listen(3000);
var io = require('socket.io');
var io = io.listen(app);
io.on('connection', function(client){
// I want to use session data here
client.on('message', function(message){
// or here
});
client.on('disconnect', function(){
// or here
});
});
Run Code Online (Sandbox Code Playgroud) 使用Express.js,会话很简单.我很好奇他们实际上是如何工作的.
它是否在客户端存储了一些cookie?如果是这样,我在哪里可以找到该cookie?如果需要,我该如何解码?
我基本上希望能够看到用户是否已登录,即使当时用户实际上并不在该网站上(例如,当您在其他网站上时,facebook知道您已登录).但我想要明白,我应该先了解会议是如何运作的.
php会话ID有多独特?我从各种各样的事情中得到了印象,我不应该依赖两个用户永远不会得到相同的sessionid.这不是GUID吗?
我想设置以下内容:
auth.example.com
sub1.example.com
sub2.example.com
Run Code Online (Sandbox Code Playgroud)
如果用户访问sub1.domain.com或sub2.domain.com且他们未登录,则会将其推送到auth.domain.com并登录.sub1.domain.com和sub2.domain.com是两个单独的应用程序但使用相同的凭据.
我尝试在php.ini中设置以下内容:
session.cookie_domain = ".example.com"
Run Code Online (Sandbox Code Playgroud)
但它似乎没有将信息从一个域传递到另一个域.
[编辑]
我尝试了以下方法:
sub1.domain.com/test.php
session_set_cookie_params(0, '/', '.example.com');
session_start();
print session_id() . "<br>";
$_SESSION['Regsitered'] = 1;
echo '<a href="http://auth.example.com/test.php">Change Sites</a>'
Run Code Online (Sandbox Code Playgroud)
auth.domain.com/test.php
session_set_cookie_params(0, '/', '.example.com');
session_start();
print session_id() . "<br>";
$_SESSION['Checked'] = 1;
print_r($_SESSION);
Run Code Online (Sandbox Code Playgroud)
会话ID完全相同但是当我转出$ _SESSION变量时,它不显示两个键,只是我在每个域下设置的任何键.
[编辑2]
我更新了[编辑]
为什么以及何时应该session_regenerate_id()在php中使用该功能?我使用后应该经常使用session_start()吗?我已经读过我必须使用它来防止会话固定,这是唯一的原因吗?
我有时会注意到我的父/子对象或多对多关系,我需要调用SaveOrUpdate或者Merge.通常,当我需要调用时,我调用SaveOrUpdate的异常Merge与不首先保存的瞬态对象有关.
请解释两者之间的区别.
我有一个应用程序设置,每个用户都属于一个公司,该公司有一个子域名(我使用的是basecamp样式的子域名).我面临的问题是rails正在创建多个cookie(一个用于lvh.me,另一个用于subdomain.lvh.me),这在我的应用程序中造成了相当多的中断(例如flash消息在所有请求中都是持久的签到).
我在/cofig/initilizers/session_store.rb文件中有这个:
AppName::Application.config.session_store :cookie_store, key: '_application_devise_session', domain: :all
Run Code Online (Sandbox Code Playgroud)
域名:所有似乎都是我在谷歌上找到的标准答案,但这似乎对我不起作用.任何帮助表示赞赏!
session ×10
php ×4
express ×2
node.js ×2
cookies ×1
cross-domain ×1
devise ×1
guid ×1
http ×1
javascript ×1
jwt ×1
nhibernate ×1
range ×1
sample ×1
security ×1