Custom C # Script e sicurezza usando CodeDom

2

Sto realizzando un software di rendering e voglio rendere estensibili gli strumenti che include. Ho creato un'interfaccia utente che consente all'utente di scrivere funzioni C # personalizzate per i valori di fusione. Le funzioni (e i relativi valori / costanti) vengono aggiunte a una classe e compilate utilizzando CodeDom e da lì viene utilizzata la funzione di fusione. Le funzioni devono avere la firma:

public float Blend(float baseValue, float value);

Il problema che sto avendo è che qualcuno potrebbe scrivere facilmente uno script che fa ogni sorta di cose malevole. Sanno che questa funzione di fusione è il punto di ingresso, ma potrebbero inserire qualsiasi tipo di codice. C'è un modo per limitare quali assembly sono disponibili al compilatore CodeDom? Ad esempio, è possibile inserire nella lista nera o nella whitelist alcuni assembly? Posso impedire allo script di accedere a System.IO ad esempio?

Saluti e grazie in anticipo.

    
posta Mavichist 25.06.2016 - 09:50
fonte

1 risposta

2

Ho visto in altri posti dove si consiglia di utilizzare AppDomain per eseguire la sandbox del codice.

L'approccio raccomandato per questo è eseguire il codice sospetto in un appdomain sandbox. Diversi motivi sono riportati nel link , e uno ancora più importante è la maggior parte degli altri potenziali approcci è deprecata a partire da .NET 4.0.

    
risposta data 25.01.2017 - 17:49
fonte

Leggi altre domande sui tag