4、Session
与php传统的$_SESSION相比较,symfony的session是其加强版本,主要包括:
- 支持redis、文件、数据库等的存储方式
- CSRF保护、会话固定防护
- 原生支持分布式存储
- 存取、读取的速度提升
Symfony Session系统在保持易用性的同时,提供了更强大、更安全的企业级特性,是现代PHP项目的最佳选择。只有在极端受限的环境或维护遗留代码时,才建议继续使用原生$_SESSION。
在前后端分离的方案中(vue、react等),建议用token来完全替换session。即使在前后端一体的方案里面,也可以同token来替换session。但是,对于典型的服务端渲染PHP应用,Symfony Session是最佳首选,因为: - 与Symfony表单系统深度集成
- 提供完整的开箱即用安全防护
- 开发效率更高,维护成本更低
仅当满足以下条件时考虑引入Token: - 应用中有大量AJAX交互需求
- 明确需要支持移动端接入
- 已有明确的向SPA迁移的计划
预期用户<1000并发时,可以采取token+symfony session的混合方案,预期用户>10000并发时,采取token方案。
