객체 드롭다운의 정적 값 노출
객체 드롭다운의 정적 값 필터는 해당 액션 유형(Action type)을 볼 수 있는 사용자에게 값과 속성의 조합을 노출할 수 있습니다. 실제 객체(Object)를 읽을 권한이 없더라도 필터 상수 자체를 알게 되는 위험입니다.
노출 예
가상의 Document 객체에 Investigation Name이 있고, 객체 참조 입력이 Area 51 Investigation과 같은 문서만 선택하도록 고정 필터를 넣었다고 가정합니다.
문서를 읽을 수 없는 사용자도 이 값이 어떤 Document의 조사 이름에 쓰인다는 사실을 추측할 수 있습니다. 데이터 행 접근이 차단되었다는 사실만으로 설정 상수가 보호되는 것은 아닙니다.
UI 숨김만으로 보호되지 않는 이유
일반적으로 액션 백엔드는 민감한 정의 내용을 가립니다. 편집 권한이 없는 사람에게 제출 조건(Submission criteria)을 숨기고 객체 드롭다운 필터도 정의 화면이나 정의 응답에서 감춥니다.
그러나 액션 폼을 표시할 때 필터 검증은 객체 집합(Object set)으로 변환됩니다. 클라이언트에 전달되는 객체 집합의 정의나 참조에서 고정 필터가 드러날 수 있습니다. 예제에서는 Investigation Name이 Area 51 Investigation과 같다는 조건이 여기에 포함됩니다.
따라서 일반 화면에 문자열이 보이지 않더라도 비밀값을 보호하는 방법으로 사용하지 않습니다.
정적 상수 대신 참조
사용자가 직접 입력한 Investigation Name 매개변수(Parameter)를 조건에 쓰면 숨겨진 자료에서 새 고정값을 노출하지 않습니다. 다른 Investigation Object의 속성을 참조하면 해당 사용자의 객체 조회 제한을 따릅니다.
이 방법은 정적 상수를 액션 정의에 넣어서 생기는 노출을 줄입니다. 선택 대상의 접근 권한과 다른 입력 경로의 실행 보안은 별도로 유지합니다.