리플렉션을 통해 플러그인을로드 할 수있는 웹 응용 프로그램이 있습니다. 이 작업을 수행하기 위해 현재 Assembly.LoadFrom()
과 Activator.CreateInstance()
을 사용하고 있습니다. 현재 플러그인은 동일한 AppDomain에로드되며 내 앱 및 내 앱이 액세스 할 수있는 모든 것에 액세스 할 수 있습니다..net 플러그인이 액세스 할 수있는 내용 제한
내가 찾고있는 것은 플러그인이 보안을 위해 액세스 할 수있는 클래스와 메서드를 제한하는 방법입니다. 허용 된 클래스가 아니라면 호출 될 때 모든 클래스와 메서드가 예외를 throw하도록하고 싶습니다. 기본적으로 API 클래스의 모든 함수와 몇 가지 데이터 전송 객체를 허용 목록에 추가합니다.
또한 플러그인이 파일 시스템이나 데이터베이스에 액세스 할 수 없도록하고 싶습니다. 비록 내가 별도의 AppDomain에서 신뢰 수준으로 할 수 있다고 생각합니다.
좋은 아이디어 나 자료가있는 사람이 있습니까? 이것은 코드 액세스 보안 또는 .net 4의 새로운 보안 투명 코드 기능으로 수행 할 수있는 것입니까?
사이트를 안정화시키는 데 책임이있는 시스템 관리자가 없다고 생각합니다. 누가 플러그인을 추가합니까? 고객? –
고객이 실시간 사이트에 직접 플러그인을 업로드하는 것을 허용하지 않습니다. 그러나 우리는 고객이 우리에게 제공하고 사이트에 직접 플러그인을 추가 할 계획입니다. 그리고 DLL을 해체하지 않고 수동으로 확인하지 않으면 100 % 신뢰할 수 있을지 확신 할 수 없습니다. –