이 포스트를 만든 목적

  • 책 보려고

이 포스트의 준비물

  • gVim 7.3

참고 서적

  • Effective C#

참고 링크

내용

이번 항목은 모든 어셈블리를 신뢰 할 수 없기 때문에, 어셈블리의 일부 기능을 제한할 수 있는 보안 기술의 종류와 이러한 보안 기술에서 운용 할 수 있는 개발 방법에 대해서 다룬다. 

어셈블리의 일부 기능을 제한할 수 있는 보안 기술

  • 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 코드는 독립된 어셈블리에 격리시켜 사용하자.

여담

  • 전체 흐름을 다 이해하지 못한 항목이다.
  • 아직 내가 이 책을 볼 단계가 아니라는 뜻이기도 하다.


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기