skyline / security
v8.0.2
2023-02-08 17:07 UTC
Requires
- php: ^8
- ext-openssl: *
- skyline/kernel: ^8
- symfony/http-foundation: ^6
- tasoft/cached-generator: ^0.9
Requires (Dev)
- phpunit/phpunit: ^9
- skyline/render: ^8
Suggests
- skyline/render: Enable client challenges using templates for html forms and HTTP\POSTFieldsIdentityProvider
README
Skyline 安全包提供了多种服务来提高您的应用程序的安全性。
Skyline 安全为您的动作控制器添加了安全服务。
安装
手动创建的应用程序不会自动安装安全包。
您可以使用 composer 轻松添加它们
$ composer require skyline/security
工作原理
Skyline 安全包有两个功能
- 管理对您的应用程序的访问控制
- 保护 HTML 表单免受跨站请求伪造攻击
管理访问
Skyline 安全使用三个阶段进行访问控制
阶段 1:识别
谁在请求?
有几种可能的方法来检测请求客户端的身份
- 匿名:您不知道它是谁,但身份始终相同
- 记住我:从“记住我”信息创建的身份
- 会话:当前会话的身份
- HTTP:由 HTTP/1.0 指定的基本和摘要身份
- HTML 表单登录
- API 密钥
所有身份都必须指定一个令牌(通常是用户名,但可以是任何东西)。这标识了一个客户端。
身份还指定了可靠性。
阶段 2:认证
Skyline CMS 是否知道具有此令牌(用户名)的人?
为此,Skyline 安全需要用户提供者,这些提供者通过令牌了解注册用户。
如果 Skyline 知道具有给定身份的用户,它将尝试使用其凭据来验证该身份。
现在凭据错误,认证阶段将中断并向客户端发送认证挑战。
但如果凭据匹配,则进行第三阶段
阶段 3:授权
用户是否允许执行所需操作?
Skyline 安全知道投票者来决定是否批准或拒绝请求。
该包附带了一个角色系统。
您作为管理员可以分配任意数量的角色给用户。
之后,动作控制器中的每个操作都可以要求角色。因此,现在 Skyline 安全只有在用户具有所有所需角色的情况下才授予对所需操作的访问权限。
跨站请求伪造
$csrfManager = ServiceManager::generalServiceManager()->CSRFManager;
特别感谢
- Symfony ( 版权所有 (c) 2004-2019 Fabien Potencier )