Re: ControlThread (SecurityPermission)
From: Dave (kdlevine@wi.rr.com)
Date: 03/24/03
- Previous message: Thread enumeration: "ControlThread (SecurityPermission)"
- In reply to: Thread enumeration: "ControlThread (SecurityPermission)"
- Next in thread: Andrew: "Re: ControlThread (SecurityPermission)"
- Reply: Andrew: "Re: ControlThread (SecurityPermission)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
From: "Dave" <kdlevine@wi.rr.com> Date: Mon, 24 Mar 2003 00:12:45 -0600
Have you tried executing the plugin in a separate appdomain? When you unload
the appdomain all threads running within it will be unwound to the appdomain
boundary, which will usually mean that all threads created within that
appdomain will be terminated.
"Thread enumeration" <whatabohr@hotmail.com> wrote in message
news:383801c2f1c6$63231f60$3001280a@phx.gbl...
> I am writing an application which needs to allow
> partially trusted plugins to execute. I load these
> assemblies with very few permissions (In fact, I have
> tried it with _nothing_ but execute).
>
> I find however that even without the ControlThread
> SecurityPermission being assigned, the plugin code still
> seems to have full control over creating a thread and
> setting priority. I need a way to prevent the plugin
> (which is potentially malicious) from creating a new
> thread and performing a DOS against legitimate code.
>
> When I call into a plugin I create a thread and execute
> on that thread (having assigned it a lower priority) then
> I have a monitor thread which is capable of aborting the
> plugin thread if it doesn't return after a timeout. This
> works great, what I cannot do is prevent the plugin from
> spawning a thread (which I have no way of controlling)
> which survives after I kill the parent thread.
>
> If there was some way I could enumerate the managed
> threads, then perhaps I could identify these leftover
> threads and abort them, but I cannot find a way to do
> this. From a System.Diagnostics.Process instance I can
> enumerate the unmanaged threads, but there seems to be no
> way to translate from these to managed Thread objects,
> nor any way to terminate them.
>
> Any thoughts?
- Previous message: Thread enumeration: "ControlThread (SecurityPermission)"
- In reply to: Thread enumeration: "ControlThread (SecurityPermission)"
- Next in thread: Andrew: "Re: ControlThread (SecurityPermission)"
- Reply: Andrew: "Re: ControlThread (SecurityPermission)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|