이 포스트를 만든 목적
- 책 보려고
이 포스트의 준비물
- gVim 7.3
참고 서적
- Effective C#
참고 링크
- http://msdn.microsoft.com/en-us/library/930b76w0(28VS.90).aspx (영어)
- 영어라 보기가 힘들다. 샘플코드가 많은것도 아니다. - http://msdn.microsoft.com/en-us/library/52kd59t0%28v=VS.90%29.aspx (영어)
- 영어라 보기가 힘들다. 샘플코드가 많은것도 아니다.
- http://www.devpia.co.kr/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1066&page=28 (한글)
- http://dalbong2.net/entry/%EC%97%B0%EC%9E%AC-1-CASCode-Access-Security%EB%9E%80 연재1 (한글)
내용
이번 항목은 모든 어셈블리를 신뢰 할 수 없기 때문에, 어셈블리의 일부 기능을 제한할 수 있는 보안 기술의 종류와 이러한 보안 기술에서 운용 할 수 있는 개발 방법에 대해서 다룬다.
어셈블리의 일부 기능을 제한할 수 있는 보안 기술
- Code Access Security(CAS)
- 참조 링크를 보면 알겠지만, 증거를 풀이해서 권한을 획득해서 일부 동작을 제한할 수 있다.
- Role-based security
- 프로그램 실행 사용자의 권한에 따라 프로그램의 일부 동작을 제할 할 수 있다.
이러한 제한에서 unmanaged 메모리 접근을 할 수 없고, Isolated storage를 제외한 파일시스템에는 접근 할 수 없다. 그러므로 이 두가지를 해결하는 개발 방법에 대해서 설명한다.
이러한 제한에서 운용할 수 있는 개발 방법들
- /unsafe 옵션을 사용하지 않는 방법
- 만약 사용하게 되면, /unsafe 를 사용하는 코드들만 따로 독립시켜 어셈블리로 만들고 사용한다. 이렇게 하면, 어플리케이션 전체가 unsafe 옵션에 해당 되는 것을 막을 수 있다.
- 파일 입/출력에는 Isolated storage 를 이용하는 방법
- 다른 어셈블리, 다른 사용자들에게는 격리된 저장소이다. 그렇다고 뚫을 수 없는건 아니기 때문에, 중요한 데이터를 저장해야 한다면, 암호화를 권장한다.
- 참조 링크 : http://msdn.microsoft.com/ko-kr/library/x7dzh4ws(v=VS.100)aspx
결론
- 최소한의 권한만으로도 어플리케이션이 수행 가능하도록 만들자.
- /unsafe 코드는 독립된 어셈블리에 격리시켜 사용하자.
여담
- 전체 흐름을 다 이해하지 못한 항목이다.
- 아직 내가 이 책을 볼 단계가 아니라는 뜻이기도 하다.
'책 정리 > Effective C#' 카테고리의 다른 글
item 50, ECMA 표준을 익혀라 (0) | 2010.08.31 |
---|---|
item 49, C# 2.0의 주요 특징 (0) | 2010.08.31 |
item 48, 활용할 수 있는 다양한 툴과 리소스에 대해서 알아두라. (0) | 2010.08.31 |
item 46, Interop를 최소화하라 (0) | 2010.08.27 |
item 45, 견고한 예외 보증 기법이 더 좋다. (0) | 2010.08.25 |
item 44, 애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라. (1) | 2010.08.23 |
item 43, reflection을 과도하게 사용하지 말라 (0) | 2010.08.19 |
item 42, reflection을 단순화하기 위해서 attribute를 사용하라 (0) | 2010.08.18 |
item 41, 새로운 구조체보다는 DataSet이 좋다. (0) | 2010.08.15 |
item 40, 적절한 collection 개체를 이용하라 (0) | 2010.08.14 |
최근댓글