쿼리 ACL
쿼리 ACL을 사용하면 데이터를 쿼리할 수 있는 사용자를 명시적으로 정의하여 보다 세분화된 액세스 제어를 정의할 수 있습니다.
쿼리 ACL이란 무엇입니까?
쿼리 ACL 의 작업은 query_range 또는 query_match로 설정됩니다. 쿼리 ACL을 사용하면 사용자 쿼리를 보다 구체적으로 제어하여 설정에 따라 액세스를 제한하거나 활성화할 수 있습니다. 쿼리 ACL은 공격자가 값을 볼 수 없는 경우에도 데이터를 맹목적으로 쿼리하여 결과에서 정보를 추출하는 블라인드 쿼리 공격 에 대한 강력한 도구입니다.
쿼리 ACL을 사용하는 경우
열에 중요한 값이 포함되어 있고 데이터에 대한 부분/조건부 액세스를 허용하는 경우 쿼리 ACL은 데이터의 민감도에 따라 필요에 따라 고려되고 구현되어야 합니다. 테이블의 행과 해당 열에 대한 부분/조건부 액세스가 있는 경우, 특히 데이터 필터에 의해 액세스가 적용되지 않는 경우 쿼리 ACL은 데이터의 민감도에 따라 필요에 따라 구현되어야 합니다.
급여 쿼리 통제
급여 테이블에서 내 급여와 함께 한 행을 볼 수 있지만 2개의 경계 내에 포함된 급여를 가진 사용자를 쿼리하기 위해 범위 쿼리를 실행할 수 있을 이유가 없습니다. 급여에 대한query_range ACL로 인해 해당 쿼리를 실행할 수 없습니다.HR 쿼리 제어
모든 hr_profiles 볼 수 있지만 SSN은 직접 볼 수 있습니다. SSN을 쿼리하는 비즈니스가 없으며 쿼리 ACL은 SSN 매핑을 추출하기 위해 다른 HR 프로필의 SSN에 대해 쿼리를 실행하지 못하게합니다.
쿼리 ACL 동작
query_match 및 query_range 작업을 사용합니다. 그들의 행동은 아래에 설명되어 있습니다.query_match-
query_match는 EQUALS, NOT_EQUALS, IN, NOT_IN, SAMEAS, NSAMEAS, ANYTHING, ISEMPTYSTRING, ISEMPTY, ISNOTEMPTY, ISNULL, ISNOTNULL로 구성됩니다.query_match는 특정 기록을 가져오도록 구축되었으며 다른 기록을 반환하기 위해 악용할 수 없다는 의미에서 "안전한 연산자"로 구성됩니다.평가 결과 결과 성공 사용자는 일치 쿼리를 제출할 수 있습니다. 실패 사용자는 일치 쿼리를 제출할 수 없습니다. - 같음
- NOT_EQUALS
- IN
- NOT_IN
- 동일
- 은사메스
- 아무것도
- ISEMPTY문자열
- 비어 있음
- ISNOTEMPTY
- ISNULL
- ISNOTNULL
query_range-
query_range는 다른 모든 항목(STARTS_WITH, CONTAINS, >=, <= 등)으로 구성되며, 이는 사용자가 경계 값을 조정하여 더 많은 레코드를 쿼리할 수 있도록 하므로 더 위험합니다.평가 결과 결과 성공 사용자는 범위 쿼리를 제출할 수 있으며 정렬은 무제한입니다. 실패 사용자는 (STARTS_WITH, CONTAINS, >=, <= 등을 사용하여 범위 쿼리를 제출할 수 없습니다. 열별 정렬이 제한됩니다.
쿼리 ACL(query_match 및 query_range 모두)은 기본적으로 읽기 권한을 위임하는 star.star ACL로 설정됩니다. 즉, ACL이 쿼리에 적용되는 경우 쿼리 ACL이 생성되지 않은 경우 열에 대한 읽기 권한이 평가됩니다. 쿼리 ACL이 정의된 경우 기본 동작을 재정의합니다.