请注意:这不是CSRF的问题-它一直工作到几天(CSRF启用,出于安全考虑,它应该是)。
今天早上我发现我无法登录我的网站,或者更确切地说,我可以登录但不能访问任何需要认证的页面(它只会直接重定向到主页)。
然后经过一番调查,发现/var/lib/php/sessions中有1600万个文件,我认为这可能是问题所在。所以我删除了所有这些文件。(rm 'ed sessions文件夹,这花了一段时间,然后用相同的权限重新创建它,基本上遵循以下步骤:https://serverfault.com/a/1046464/382503)
现在,当尝试登录到该网站,得到错误:无法验证数据提交。所以我添加了代码来禁用CSRF:
public function beforeAction($action)
{
$this->enableCsrfValidation = false;
return parent::beforeAction($action);
}
已经部署重新启动整个VPS加上apache2 ...
现在,当我尝试登录时,它根本没有让我登录(虽然没有得到"无法验证提交"),只是转到主页...没有任何apache日志文件或app.log输出...
抓着救命稻草不知道该怎么办...
任何帮助都很感激
更新:
我已经将sessions文件夹设置为chgrp和chown www-data,并将其设置为777,因此它肯定是可写的:
[20:15:35][root@vps12345:/var/lib/php]#ls -l
total 236
drwxr-xr-x 2 root root 4096 Feb 7 11:34 emptydir
drwxr-xr-x 4 root root 4096 Apr 8 2019 modules
drwxrwxrwx 2 www-data www-data 229376 Feb 7 20:15 sessions
此外,似乎正在将会话文件写入文件夹:
[20:17:33][root@vps12345:/var/lib/php/sessions]#ls -l | wc
4189 37694 339240
当我删除文件夹中的所有文件,并尝试再次登录时(仍然遇到相同的问题,无法登录):
[20:19:13][root@vps12345:/var/lib/php/sessions]#ls -l
total 12
-rw------- 1 www-data www-data 23 Feb 7 20:19 sess_9gu45ng49mem7934e8qcap5rr4
-rw------- 1 www-data www-data 14 Feb 7 20:19 sess_aog85dp6ovrpn3hq2l14a46nms
-rw------- 1 www-data www-data 14 Feb 7 20:19 sess_r18rb7b72a97ku9dv19p1v3js3
- 更新2:**好的,检查会话文件的内容,似乎只有与闪存相关的内容(没有登录会话详细信息):
[20:32:48][root@vps12345:/var/lib/php/sessions]#for x in $(find . -type f); do cat $x; echo ""; done
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:1:{s:5:"error";i:-1;}error|s:27:"Service category not found.";
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}__id|i:7;
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:1:{s:5:"error";i:-1;}error|s:27:"Service category not found.";
__flash|a:0:{}
__flash|a:0:{}__id|i:69079;
__flash|a:0:{}
- 更新3:**好的,我已经启用了会话存储的数据库(https://www.yiiframework.com/doc/guide/2.0/en/runtime-sessions-cookies#custom-session-storage),但问题仍然存在,所以看起来不是文件写入/权限问题
- 更新4:**
好吧,在这里绝望!没有一个我的网站用户可以登录,这是一个灾难的网站:(
在过去的几个月里,绝对没有代码被修改。没有composer命令被运行。没有cron做任何与会话相关的事情。
事实上,唯一的变化是我和广告提供商Egozio公司整合了。在安装过程中,我不得不给他们访问我的CloudFlare用户名和密码,这样他们就可以访问我的CloudFlare API密钥(非常可怕)。也许这是一个巧合...我不知道。
当然也有某种缓存,但我不知道这是否会影响会话:
public function actionLogin()
{
die('here'); // this line only comes into effect on POST requests
//rest of login processing code...
}
1条答案
按热度按时间oug3syen1#
好的,问题终于解决了。
原来这是中生代云耀斑整合造成的浩劫与我的会议(不是说中生代是坏的,他们似乎有一个很好的产品-只需要找出如何解决这个问题)。
一旦CF集成被删除(在我的Ezoic管理区)登录再次开始工作...