Actualmente estoy trabajando en un marco muy modular y basado en plugins para mi tesis de licenciatura. La idea principal es que haya una carpeta dentro de la estructura de mi aplicación llamada plugins
donde puede colocar complementos compilados (por ejemplo, .dll
-files), que se ajustan a una interfaz especial IPlugin
. La aplicación luego ejecuta tareas usando el complemento que el usuario selecciona. Entonces, si quiero realizar una tarea una vez en un archivo PDF, elegiría el PdfPlugin
y una vez en un documento de Word, elegiría el DocPlugin
para el trabajo.Cómo evitar que los complementos ejecuten código dañino
La salida también se define en las interfaces, por lo que cada complemento devuelve la misma estructura de datos. Solo el trabajo real difiere para cada biblioteca.
Ahora, como la aplicación solo llama a los métodos definidos en la interfaz, p. ParseDocument()
y tal, ¿cómo puedo evitar que los complementos (que pueden haber sido desarrollados por terceros) puedan ejecutar código dañino?
Estoy trabajando en .NET3.5 (tal vez cambie a 4, aún no decidido) y C#.
¿Es posible consultar un complemento de qué permisos de seguridad de acceso de código quiere? En comparación con algo así como intenciones en Android? Es decir. Probablemente quiera un plugin framework que me permita determinar qué permisos está solicitando un plugin, por lo que puedo pedir confirmación al usuario antes de cargar el plugin. ¿O es al revés, en el que impongo permisos en mi aplicación, y luego el plugin simplemente falla/arroja una excepción si intenta hacer algo fuera de los permisos permitidos? – AaronLS
No pido un "cómo", ya que está fuera del alcance de la pregunta, pero curioso de cuál de estos dos enfoques diferentes CAS es apropiado. – AaronLS