Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scripting Language in a Sandbox for a C#/.NET Application

[This question is similar to this one, but I am also interested in the possibility of a sandbox.]

I am considering embedding a scripting language in my C#/.NET application and then exposing some of my application's API to the scripts. There seem to be multiple good options for this (Lua, Boo, IronPython, etc.), but are there easy options for restricting the scripting language's built-in functions from being used? For example, I do not want the scripts to be able to perform I/O except through the API that I explicitly expose, so no printing to the console, opening files, etc. Do any of these scripting languages provide an easy way to do this?

like image 398
Kevin Albrecht Avatar asked Feb 19 '09 08:02

Kevin Albrecht


1 Answers

You can load te script into a different AppDomain and control the permissions of the second AppDomain.

This link should get you started:
http://blogs.msdn.com/shawnfa/archive/2005/08/08/449050.aspx

like image 68
Nir Avatar answered Sep 21 '22 10:09

Nir