2009-06-26 2 views
14

“Code Access Security” of any real world use?.NET 코드 액세스 보안 : 유용하거나 복잡합니까?

나는이에 다른 의견 싶어 ...

내가 데스크톱 응용 프로그램에 대한 코드 액세스 보안의 생각처럼 발생한다. 그러나 .NET의 평생 동안 CAS가 실제로 내 이익을 위해 뭔가를 차단 한 적이 실제로 없었던 것을 인정해야합니다.

그러나 매핑 된 드라이브에서 빠른 .NET 응용 프로그램을 공유하는 것처럼 간단한 것이 엔터프라이즈 코드 액세스의 악몽이되었습니다. caspol.exe를 실행하여 신뢰할 수있는 경로 규칙을 만들었으며 무언가가 실패한 이유를 알 수있는 명확한 방법이없는 경우 CAS에서 보안에 제공하는 것보다 개발 및 배포 프로세스에 더 많은 불만을 맺게됩니다.

CAS가 실제로 상처를 입히는 데 도움이되었거나 현재 구현 및 기본값에 좌절 한 다른 사람들이있는 경우를 듣고 싶습니다.

+0

특히 네트워크 드라이브를 통한 CAS 문제를 해결하는 .net 3.5 용 패치가 있습니다. –

답변

7

.NET 팀원은 어셈블리 접근 보안이 .NET # 4에서 다시 수정된다는 동일한 결론을 내 렸습니다. 자세한 내용은이 블로그를보십시오. .NET Security blog

4

여기, 여기! 나는 많은 좌절감을 공유했다. 물론 복잡하고 무시 무시한 문서는 개발자가이를 우회하거나 지나치게 광범위한 규칙을 사용하도록 장려합니다. 보안은 항상 누군가를위한 어려운 견해가 될 것이지만 CAS는 옳은 일을하기가 정말로 어렵습니다.

+1

좋은 지적입니다. 당신이 벽에 머리를 때려 눕히고 그저 모든 것을 "완전 신뢰"까지 잭하면 패배합니다 ... – Brandon

1

나는 CAS를 다뤄야 만했지만, 십여 대의 워크 스테이션에만 배포해야했기 때문에 그렇게 어렵지 않았습니다. 그룹 정책을 통해 필요한 설정을 푸시 할 수도 있습니다.

그러나 귀하의 질문에 대답하기 위해, 아니, 나는 절대 도움이되지 않는다고 생각합니다.

.NET 3.5부터는 CAS없이 네트워크 공유에서 앱을 실행할 수 있습니다.

+0

나는 그들이 3.5에서 그 변화를했다는 것을 몰랐습니다 ... 3.5 또는 3.5 SP1입니까? – Brandon

+0

SP 1은 다음과 같습니다. http : //stackoverflow.com/questions/221689/net-3-5-sp1-network-shares-allow-exe-application-to-run 직접 시도하지 않았습니다. –

0

많은 검색 후 CLR 팀에서이 블로그 항목을 발견했는데 CAS가 .NET 4에서 사라지는 것을 확인할뿐만 아니라 훌륭한 가이드를 제공합니다. 깨지게 될 항목과 새로운 샌드 박스 모델로 마이그레이션하는 방법은 New Security Model: Moving to a Better Sandbox입니다. 기사에서 :

  1. 스택 : V4 전에 닷넷 프레임 워크 버전에서는

    , 우리는 어셈블리 내에서 어셈블리의 권한 또는 특정 코드 경로를 제한하는 방법은 여러 가지가 있었다 수정을 -Walk : 거부, PermitOnly에게

  2. 조립 레벨 요청 : RequestOptional, RequestRefuse, RequestMinimum

  3. 정책 변경 : caspol 및 AppDomain.과거

내 컴퓨터

보다 지대 서로 어셈블리를로드 SetPolicyLevel는

  • ,이 API는 호스트와 응용 프로그램 작가에 대한 혼란 원천이되어왔다. .Net Framework 4에서 권한을 제한하는 이러한 방법은 사용되지 않음으로 표시되며 은 시점에 삭제할 수 있기를 바랍니다.

    이러한 비추천 된 샌드 박스 생성 방법은 NotSupportedException을 던지기 시작합니다. 이것은 현시점에서 자신의 조직에 CAS를 구현하는 데 필요한 이유가 무엇이든간에 (자신과 같은) 가난한 영혼에게는 예외적으로 위험합니다. 당신은 경고를 받았습니다.