현재 위치: > 최신 기사 목록> PHP 액세스 제어 구현 솔루션 : RBAC와 ABAC 간의 토론

PHP 액세스 제어 구현 솔루션 : RBAC와 ABAC 간의 토론

M66 2025-07-14

액세스 제어 개요

액세스 제어는 승인 된 사용자 만 시스템 리소스에 액세스 할 수 있도록 중요한 보안 조치입니다. PHP에는 액세스 제어를 구현하는 몇 가지 방법이 있습니다. 이 기사는 두 가지 공통 액세스 제어 정책의 역할 기반 액세스 제어 (RBAC)와 ABAC (Attribute Access Control)에 중점을두고 실제 사례를 통해 설명됩니다.

역할 기반 액세스 제어 (RBAC)

RBAC (역할 기반 액세스 제어)는 역할을 통해 권한을 할당합니다. 역할은 책임, 부서 또는 기타 기준에 따라 정의 될 수 있으며, 사용자의 권한은 자신이 할당 한 역할을 기반으로합니다. RBAC를 구현하려면 먼저 사용자, 역할 및 권한을 정의해야합니다.

 use RoleBasedControl as RBC;
 $user = new User();
 $user->setUsername('admin');
 $role = new Role();
 $role->setName('manager');
 $permission = new Permission();
 $permission->setPermission('manage_users');
 $rbac = new RBC();
 $rbac->assignUserToRole($user, $role);
 $rbac->assignPermissionToRole($permission, $role);
 if ($rbac->hasAccess($user, $permission)) {
   // 액세스 허용
 } else {
   // 접근 불가

속성 기반 액세스 제어 (ABAC)

ABAC (속성 기반 액세스 제어)는 사용자 속성을 통해 권한을 지정합니다. 이러한 속성은 연령, 위치, 조직 멤버십 등이 될 수 있습니다. ABAC를 구현하려면 사용자와 리소스의 속성을 먼저 정의하고 액세스 정책을 설정해야합니다.

 use AttributeBasedControl as ABC;
 $user = new User();
 $user->setAttribute('age', 25);
 $user->setAttribute('location', 'USA');
 $resource = new Resource();
 $resource->setAttribute('sensitivity', 'high');
 $policy = new Policy();
 $policy->setAttribute('age', '>= 21');
 $policy->setAttribute('location', 'USA');
 $policy->setPermission('read');
 $abc = new ABC();
 $abc->addPolicy($policy);
 if ($abc->hasAccess($user, $resource)) {
   // 액세스 허용
 } else {
   // 접근 불가

실제 사례 : 전자 상거래 웹 사이트의 권한 제어

관리자 만 관리자 대시 보드에 액세스 할 수있는 전자 상거래 웹 사이트를 개발하고 있다고 가정합니다. RBAC를 사용 하여이 기능을 구현할 수 있습니다.

 $user = $_SESSION['user'];
 if ($user->hasRole('admin')) {
   // 디스플레이 관리 대시 보드
 } else {
   // 홈페이지로 리디렉션하십시오

결론적으로

액세스 제어 정책을 정확하게 구현하면 웹 응용 프로그램의 보안을 크게 향상시키고 무단 액세스를 방지 할 수 있습니다. RBAC이든 ABAC이든 다른 보안 요구에 대한 효과적인 솔루션을 제공 할 수 있습니다.