Articles of 会话

带有Tomcat的Apache httpd mod_rewrite导致JSESSIONID丢失

所以我正在开发一个Java Web应用程序,为此我最近实现了一个依赖于JSESSIONID cookie识别用户的authentication模块。 我在eclipse上testing了一个本地的tomcat,并且一切正常……直到我用一些更高级的安装结构在我们的VPS(Centos)上部署应用程序: Apache HTTP服务器 几个虚拟主机 所述webapp被安装在具有mod_jk的虚拟主机中。 目前通过“sub.hostname.com/WEBAPP_NAME/home”进行访问,但应该以“sub.hostname.com/home”提供。 上面的设置在authentication更新之前并不是什么大问题(顺便说一下,之前的tomcat安全选项处理访问)。 旧的VirtualHost看起来像这样,工作得很好: <VirtualHost *:80> ServerName sub.hostname.com RewriteEngine on RewriteRule ^/(.+)$ /WEBAPP_NAME/$1 [L,PT] RewriteRule ^/$ /WEBAPP_NAME/home [L,PT] JkMount /* worker </VirtualHost> 问题:部署之后,validation将不起作用,因为JSESSIONID cookie没有写入。 我删除了RewriteRules并通过'sub.hostname.com/WEBAPP_NAME/home'访问应用程序,在那里一切正常,我收到一个cookie。 从这些观察,我猜这个问题是由于URL被重写,而Servlet不会将cookie写入正确的path(?)如果是这样的话,我应该尝试从应用程序内写入cookie到其他path? 问题:我接受关于解决scheme的所有build议。 请裸露在我身上,因为我(显然)不是服务器设置的专家。 有没有什么具体的设置,可以在apache或tomcat中处理呢? 还是我最初select了错误的安装架构? 提前感谢!

IIS正在丢失或放弃自定义会话

我们有一个aspx.net应用程序与IIS 7.5,我们正面临着一个巨大的问题,因为这个应用程序丢失或放弃会议没有明确的理由。 由于客户端限制,我们必须使用自定义会话,而不是IIS会话。 应用程序池正在使用pipe道:集成和框架是4,应用程序池中的所有“回收”设置已被设置为FALSE。 我所说的客户会话是我们根据Microsoftbuild议的示例创build的.cs类,其中介绍如何创build自定义会话。 我们唯一不同于这个微软的例子是我们增加了一个名为'Token'的会话variables,每次我们需要检查会话ID。我们还检查是否存在该令牌。 正如你所看到的是一个简单的validation问题..但是,似乎IIS似乎歧视这个令牌会话。 我们使用第一个global.asax来pipe理begin_request,end_request等等。由于这个问题,我们现在使用的是处理程序而不是global.asax,但问题仍然存在。 当我们使用Fiddler跟踪应用程序时,它揭示了令牌ID是空的,但会话ID值仍然存在..所以我没有任何意义。 如果是能够给我们一个build议和小费的人,或者是有类似问题的人,告诉我们为克服这个问题所做的一切,我们真的非常感谢他们的帮助。 请帮忙 埃尔南

基于后端应用程序会话cookie的HAproxy ACL取代HTTP基本身份validation

我需要HAproxyconfiguration的一些帮助来绕过HTTP基本身份validation,并让用户使用特定的后端,以防从另一个后端应用程序提供有效的会话cookie。 在我的前端定义中,我通常使用以下configuration来工作: # Monitor application response headers for keywords and update user ACL acl has_disallowAPPUser res.hdr(X-APP-DisallowUser) -m found acl has_allowAPPUser res.hdr(X-APP-AllowUser) -m found http-response del-acl(/var/lib/haproxy/app_user_sessions.acl) %[res.hdr(X-APP-DisallowUser)] if has_disallowAPPUser http-response add-acl(/var/lib/haproxy/app_user_sessions.acl) %[res.hdr(X-APP-AllowUser)] if has_allowAPPUser # Monitor application response headers for keywords and update admin ACL acl has_disallowAPPAdmin res.hdr(X-APP-DisallowAdmin) -m found acl has_allowAPPAdmin res.hdr(X-APP-AllowAdmin) -m found http-response […]

PHP警告:未知:写入会话数据失败(memcached)。 非常罕见

几周前我安装了memcached(2.2.0)libmemached(1.0.18)。 (Apache / 2.4.10和PHP 5.5.20),主要用于php会话pipe理。 一般来说,我对表演非常满意,但我偶尔会注意到这个警告。 它每天发生两三次,每次发送三条消息(几秒钟内)。 我可能每天跑大约5万次 – 所以这只是一小部分。 我无法复制。 而且我看不出有什么帮助。 所有的memcachedconfiguration设置都是标准的,我从命令行启动了守护进程: memcached -d -u nobody -m 128 127.0.0.1 -p 11211 客户端的一些有趣的事情会导致这些罕见的打嗝吗? 更新…find线索… ; The amount of retries for failed store commands. ; This mechanism allows transparent fail-over to secondary servers when ; set/increment/decrement/setMulti operations fail on the desired server in a multi-server ; […]

PHP会话跟踪cookie(在同一个域上的多个会话处理)

我有2个应用程序,都有基于密码login,数据库等,密码不同,数据库不同,应用程序目前在不同的文件夹。 loginexample.com/abcd的第一个应用程序。 用户名:admin,密码:admin 然后你可以在example.com/abcd1打开第二个应用程序。 即使密码不同,数据库也不同,应用程序出现在不同的文件夹中,但第二个应用程序并不要求login。 它直接进入index.php。 页。 如果我们从第二个应用程序注销,我们也将从第一个应用程序注销。 已经尝试运行下面的脚本: – >在httpd.conf下的pastebin – >下.htaccess没有存在,所以创build一个,并添加SetEnv session.use_cookies ='0'; 要么抛出一个错误。

将terminal进程的控制转移到不同的模拟器

如何在PC间即时传输terminal会话? 我的意思是 – 我希望能够通过运行应用程序将例如SSH会话转移到另一台电脑上,让笔记本电脑不受shell干扰。 或者将SSH会话从笔记本电脑移动到主机物理机器,这样我就可以closures笔记本电脑,直接在主机上继续,反之亦然。 可能吗? 我特别感兴趣的是SSH到SSH的迁移,但如果本地terminal到SSH的传输也是可能的。

会议突然终止,可能是由于代理人

我们build立了一个主要由外部客户使用的CRM系统。 CRM的一部分具有基于向导的操作,用户在完成整个操作之前需要经过一系列步骤,所有操作都存储在会话中。 这个系统已经运行了好几年了,对我们的客户来说,这个系统是完美的。 然而,最近我们有一个特定的客户提出问题,他们的会话将在最后一步之前间歇性地终止。 这个问题随机发生。 如果用户很幸运,那么他将能够完成向导而没有问题。 然而,大多数时候,CRM系统无法在向导中间传递信息。 例如:用户将在步骤3中进入“无法从前面的步骤中检索信息”。 我们确信这与我们的系统无关,因为我们没有收到其他客户的投诉。 我们检查了浏览器configuration,发现它们在代理之后,我们认为代理是由一些名为WebSense的安全套件来pipe理的。 我们不完全确定它做了什么,但只是与这里的专家进行核对,通常是否有任何安全套件窥探cookie标头并有意/无意地移除会话cookie?

FastCGI和tmpfs

我阅读了一些关于为/ tmp和PHP会话目录使用tmpfs以获得更好性能的文章,这听起来很有趣。 我正在使用LAMP堆栈(+ FastCGI)的Centos 6服务器,在我的fcgid.conf中,我可以看到两个负责套接字文件的configuration: FcgidIPCDir / var / run / mod_fcgid FcgidProcessTableFile / var / run / mod_fcgid / fcgid_shm 我可以(也应该?)将这些目录移动到另一个位置,并将其放在tmpfs下? 我找不到任何有关它的文章,但对我来说这听起来很合理,毕竟它不应该持续下去。 编辑:我删除了另一个子问题。 谢谢 :)

真的要销毁服务器上的所有PHP会话

我有一个运行在Linux服务器上的PHP Web应用程序。 它通过浏览器访问。 它使用PHP会话来存储用户的login状态和用户标识。 我需要注销所有用户。 我有root权限,并试图销毁所有PHP会话,迫使所有用户重新login。 我删除了/ tmp /中存储的所有sess_XXX文件,当我返回到webapp时,我仍然login,会话文件在/ tmp /中重新创build,而且我的所有详细信息都保持不变 – 使用与先前相同的值build议会话数据仍然存储在某个地方。 除了PHP会话文件caching用户数据之外,我没有“caching机制”。 我尝试更改PHP会话名称,然后删除会话文件,但我仍然login。检查sess_XXX文件即使在会话文件被删除后也显示相同的信息,然后通过再次访问Web中的应用程序重新创build浏览器。 此信息不存储在用户浏览器中,因此必须从会话中检索。 任何人都知道如何才能真正销毁会话并强制用户注销?

apt-get install之后的命令在脚本中不执行

我正在写一个脚本,意思是最初设置我的Droplet。 在脚本中,我打开了与我的Ubuntu 14.04服务器的ssh连接,如下所示(用USER和REMOTEvariables定义): ssh -t -t $USER@$REMOTE <<'ENDSSH' ENDSSH 在SSH连接的内部,我有多个我想要执行的命令 – 安装Node.js,更新npm,安装MongoDB等等。 但是,一旦我执行apt-get install命令,其他命令就不会被执行。 所以,如果我有这个: ssh -t -t $USER@$REMOTE <<'ENDSSH' sudo apt-get update sudo apt-get install -y nodejs sudo apt-get install -y npm ENDSSH 命令sudo apt-get install -y npm将不会被执行。 现在,我知道我可以在同一个apt-get install命令中安装多个软件包,但这不是我所要求的,因为之后的其他命令将不会被执行。 这个例子我只是写出来的简单,所以我可以解释我的问题。 我遇到这样的问题,他们说我打开ssh连接时应该放置多个-t标志,我正在做这些,但这并没有帮助。 我究竟做错了什么?