Tom;<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">My roommate did this project a few years ago (actually, it was<br>
collaborative ChucKing), but I don't know if he handled the security<br>
issues. I'll ask. However, since that time more unsafe APIs have been<br>
added, so even if they did, their patch might not be too useful.<br>
<br></blockquote><div><br></div><div>We did disable Std.system( string ) by default. That's the biggest thing.</div><div><br></div><div>File I/O will be a issue but on Unix chuck could be granted access only to a small directory or no read/write access at all.</div>
<div><br></div><div>That last option should also solve the potential questions about writing wave files to disk in a way that might clog the file system.</div><div><br></div><div>There may be more.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I think it would take some work to find all the places where ChucK<br>
performs operations you wouldn't want to do in a sandbox. There's no<br>
--sandbox option, though the undocumented --standalone gets you<br>
started. It turns off network listening for on-the-fly VM commands.<br>
AFAIK it's only referenced in the VERSIONS file and chuck_main.cpp.<br>
<br></blockquote><div><br></div><div>Hmmmm.... but how would you then add more code?</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
<br>
And Stephen's right that you'd definitely need a watchdog outside of<br>
ChucK since a shred can halt virtual time indefinitely with an<br>
infinite loop. If you're spawning a ChucK per job that's simple, but a<br>
long-running ChucK would be complicated. There's --watchdog (another<br>
undocumented flag), but it's not clear how/if that works.<br><font class="Apple-style-span" color="#888888"><br></font></blockquote><div><br></div><div>Watchdog works, but it's chiefly useful when ChucK is a part of the mini as the terminal version can't spawn a popup window, I'm not sure whether watchdog can currently call to outside processes, if not that might be a good idea. If so it should be documented.</div>
<div><br></div><div>Yours,</div><div>Kas. </div></div>