2013-03-16 6 views
2

예를 들어, IIS는 ASP 어셈블리를 호스트하고 SQL Server는 SqlClr 어셈블리를 호스트합니다. 호스팅 서버 응용 프로그램을 작성한다면 호스팅 된 어셈블리가 호스팅 응용 프로그램에 반영 될 수 있습니까? 아니면 app-domains이 그것을 방지합니까?호스팅 어셈블리를 통해 반영 할 수 있습니까?

기록을 위해 나는 다른 사람들의 집회에 대해 생각하지 않으려 고하며, 다른 사람들이 내 것을 반성하는 것을 막는 데 더 관심이 있습니다.

+0

예, 웹 서버 또는 SQL 서버는 문에 단단한 잠금 장치가있는 방에서 실행됩니다. 그러면 "다른 사람들"은 물론 자신의 코드가 귀하의 것과 멀리 떨어져있게됩니다. 소프트웨어 보안은 결코 물리적 보안을 대체하지 못했습니다. –

답변

1

호스트 된 어셈블리에 Reflection 권한 (http://msdn.microsoft.com/en-us/library/system.security.permissions.reflectionpermission.aspx 참조)이 있으면 보류 된 모든 유형을 반영 할 수 있습니다. 따라서 코드를 "스누핑 (snooping)"하는 사람이 염려되는 경우 호스팅 된 어셈블리가 해당 권한없이 샌드 박스로 실행되는지 확인하십시오.

참고 : Microsoft는 다른 모든 서비스 팩마다 적용되는 제한 사항을 계속 변경하고 있습니다. "public"으로 선언 된 모든 코드는 사용 권한과 관계없이 코드를 리플렉션에서 사용할 수 있습니다. http://msdn.microsoft.com/en-us/library/system.security.permissions.reflectionpermissionflag.aspx 그러나 호스팅 된 코드는 이러한 공개 API를 통해 호스팅 응용 프로그램과 상호 작용해야하므로 리플렉션에서 숨 깁니다 어느 쪽이든 어떤 진실한 이득도 제공하지 않을 것입니다.

+0

흠. 바닥이 '개인'어셈블리이고 중간이 일반 대중 정보 어셈블리이며 최상위가 사용자 어셈블리 인 일종의 레이어 케이크 솔루션에 대해 어떻게 생각하십니까? – sircodesalot

+0

이러한 레이어 솔루션은 제한된 어셈블리가 "개인"어셈블리의 모든 항목으로 엿보지 않도록해야합니다. 개인적으로 모든 공용이고 실제 exe는 모두 내부적 인 공통 "Something.Interfaces.dll"을 중심으로 플러그인 (즉, 호스팅) 기반 응용 프로그램을 디자인합니다. –

+0

멋진 답변을 많이 주셔서 감사합니다. – sircodesalot

관련 문제