我的会话工作正常,我有一个使用TankAuth的复杂的自定义用户权限系统。我把这个项目作为一个小项目开始,它变成了一些可怕的东西。大多数数据是通过javascript前端获取异步的。它现在基本上是一个API,但有一些例外。
我的问题是关于会议。我知道CI 3(或更高版本的某个地方)改变了会话库,允许多个ajax调用不相互阻塞。我注意到,在运行多个ajax请求时,我的应用程序在延迟时间之后一起取出结果。我确信这是因为阻止了会话,但我担心由于安全问题而尝试修复。
如何在没有安全风险的情况下阻止会话中的ajax呼叫相互阻塞?
答案 0 :(得分:1)
首先,我相信您正在使用"阻止"对于两件不同的事情......
下面:
我知道CI 3(或更高版本的某个地方)更改了会话库,以允许多个ajax调用不会相互阻塞。
在这里:
我注意到,在运行多个ajax请求时,我的应用程序在延迟时间后一起取出所有内容。我确信这是因为阻止了会议
CodeIgniter 3并没有改变会话库 - 它用一个全新的替换它,其中一个原因是多个请求不会干扰彼此(第一次引用)。
然而,实现这一目标的方法是使用锁定(或你所说的"阻止"在第二个引用和你的问题中)。你无法避免这种情况。
您可以做的是,只要他们不再需要修改session_write_close()
数组,就会在您的请求中调用$_SESSION
- 这将释放锁并关闭当前请求的会话,但仍保留$_SESSION
个内容以供阅读。