2013-10-03 4 views
0

다음 시나리오를 고려하십시오. 개별 직원 레코드가 별도의 단일 파일에 저장되는 직원 레코드를 관리하는 응용 프로그램이 만들어집니다. 다양한 유형의 직원 데이터에 대해 읽기 및 쓰기 액세스를 독립적으로 제어해야합니다. 이 도구는 일부 섹션 (예 : 연락처 정보)을 읽고 쓸 수 있고 다른 섹션 (예 : 이전 정보)을 읽을 권한이 있어야하며 다른 민감한 섹션 (예 : 유료)에 액세스 할 수 없어야합니다..NET 코드 보안 보안

CAS를 사용하여 액세스가 어떻게 올바르게 제어 될 수 있습니까? 이 시나리오에서 기본 제공 CAS 기능으로 충분합니까?

우리는 연락처 정보 하나, 그리고 별도의 응용 프로그램 도메인에 그들 각각을 할당하는 등 역사적 사실에 입각 한 정보를 다른 같은 작업의 종류에 따라 코드를 분리 할 수 ​​있습니다합니다 (로 다음과 같이

내 생각이다 도메인에 대한 적절한 보안 권한). C#에서 응용 프로그램 도메인 및 관련 사용 권한의 생성을 명시 적으로 지정할 수 있습니까?

+1

대담한 과잉 공격 (IMO) .. 코드에서이 보안을 유지하지 않는 이유는 무엇입니까? –

+0

"파일"이라고 할 때 플랫 파일을 의미합니까? 아니면 어떤 종류의 데이터베이스를 사용하고 있습니까? –

+0

@ John 플랫 파일. – Karan

답변

0

개인적으로 나는 데이터를 지키는데 집중할 것입니다.

적절한 권한이있는 디렉토리 (예 : 액세스 할 그룹을 정의하고, 그룹에 대한 액세스 권한을 부여하며, 사용자에게 해당하는 각 그룹의 ACL을 유지 관리)에 플랫 파일을 저장하십시오.

  1. 파일이 열립니다 앱이 파일 중 하나를 열려고하면

    는 두 가지 경우를 처리해야합니다. 이 사례를 법선별로 처리하고 UI를 표시합니다.

  2. 파일 시스템 권한이 부적절하기 때문에 파일 접근이 거부되었습니다. 앱이이 시점에서 적절한 오류를 표시하고 사용자가 주 메뉴 등으로 돌아갈 수 있도록해야합니다.

이 외의 다른 작업을 수행 할 필요가 없다고 생각하지 마십시오. 코드 액세스 권한은 데이터를 지키지 않고 코드 논리를 보호하기위한 것입니다.

+0

나는 그 문제가 그가 파일 내의 * 섹션을 읽는 것을 제한하고 싶어한다고 생각한다. 민감한 정보가 민감하지 않은 정보와 동일한 파일에 포함되어 있지만 결합되지 않은 경우에는 완벽합니다. –

+0

Yikes, 확실히 어렵습니다! –