2012-11-09 2 views
0

이 프로젝트를 상속 받았으며 약 20 개의 폼, 수백 개의 컨트롤 및 수만 줄의 코드가 있습니다. 나는 잠시 동안 일해 왔고, 이제는 상사가 사용자 계정 추가를 요청하고 있습니다.Windows 폼에 사용자 계정을 추가하는 데 필요한 조언

기본적으로 User, SupervisorAdministrator과 같은 다른 레벨이 있습니다. 응용 프로그램을 시작하면 로그인해야하며 일종의 데이터베이스에 대한 로그인 자격 증명을 확인하고 보유한 사용 권한의 종류를 결정합니다.

User 버튼을 제외한 모든 컨트롤은 기본 양식에서 비활성화됩니다 (이 작업을 수행하는 좋은 방법은?) Go 버튼입니다. Supervisor을 사용하면 모든 기능이 활성화되고 사용자 계정을 만들 수 있습니다 (일부 양식에만 해당). AdministratorSupervisor과 동일하지만 사용자 계정을 백업 할 수도 있습니다.

내 문제는 이것을 구현하는 방법을 정확히 모르겠습니다. 프로그램이 인터넷 연결없이 사용 가능해야하므로 온라인 서비스 나 데이터베이스를 쿼리 할 수 ​​없습니다. 컴퓨터에 외부 파일이있는 문제는 누군가 편집하거나 삭제할 수 있다는 것입니다.

내 아이디어는 응용 프로그램의 Settings 클래스에 사용자 계정을 저장하는 것이지만 외부 구성 파일도 저장합니다. 나는 그것이 실행 파일에 저장 될 수 있어야하지만 저장되고 파일로 임포트 될 필요가 있다고 생각한다.

분명히 암호는이 파일에서도 해시되어야합니다. 누구든지 사용하기 쉽고 사용하기 쉬운 클래스를 알고 있습니까 (이 응용 프로그램은 상업적으로 판매 될 것이므로 사용 제한이 없음). 사용자 이름도 해싱해야합니까? 왜냐하면 누군가가 파일을 보류하면 암호를 추측하기 쉽도록하기 때문에 모든 사용자 이름을 알 수 없기 때문입니다.

+0

인증을 위해 클라이언트를 신뢰할 수 없습니다. 중요한 데이터입니다. 응용 프로그램에 어떤 컨트롤을 넣든 관계없이 데이터를 직접 읽고 쓸 수 있으면 쓸모가 없습니다. 나의 첫 번째 공격은 구성에 관리자의 해시로서 해시 비밀번호를 붙여 넣는 것입니다. 이제 관리자 액세스 권한이 있습니다. – ixe013

답변

0

귀하의 상사가 신청서에서 중대한 변화를 요구하고 있습니다.

귀하의 모든 요구 사항을 모른 채 나는 한 방향 또는 다른 방향으로 밀어 붙일 수 없습니다. Smart Client Architecture and Design Guide (PDF에서도 사용 가능)을 확인하십시오.이를 통해 고려해야 할 디자인/아키텍처 패턴을 파악할 수있을뿐만 아니라 달성하려는 범위를 이해하는 데 도움이됩니다.

Chapter 5은 보안 고려 사항을 다루고 다른 인증 모델을 설명합니다. 이것은 적어도 당신에게 좋은 출발점을 제공해야합니다.

관련 문제