<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Script And IE Security Part Two: Digging Deeper</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx</link><description>I want to continue my foray into the security semantics of the script engines this week, for a couple of reasons. 
 
 
 
 First of all, this information isn't really clearly documented anywhere outside of our internal documentation. Most of the interfaces</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Script And IE Security Part Two: Digging Deeper</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx#9966100</link><pubDate>Fri, 19 Feb 2010 01:05:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9966100</guid><dc:creator>Nick Houlin</dc:creator><description>&lt;p&gt;I would appreciate any information on the C# version of &amp;nbsp;IActiveScript, etc. resources. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9966100" width="1" height="1"&gt;</description></item><item><title>re: Script And IE Security Part Two: Digging Deeper</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx#9966099</link><pubDate>Fri, 19 Feb 2010 01:04:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9966099</guid><dc:creator>Nick Houlin</dc:creator><description>&lt;p&gt;I would appreciate any information on the C# version of &amp;nbsp;IActiveScript, etc. resources. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9966099" width="1" height="1"&gt;</description></item><item><title>.NET 2.0 ActiveX Control Gotchas (Safe for Scripting and Hooking into Events)</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx#9691985</link><pubDate>Wed, 03 Jun 2009 20:43:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9691985</guid><dc:creator>Rick Minerich's Development Wonderland</dc:creator><description>&lt;p&gt;I’ve recently been building an ActiveX Control in .NET 2.0 and thought I would share some of the problems&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9691985" width="1" height="1"&gt;</description></item><item><title>re: Script And IE Security Part Two: Digging Deeper</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx#58688</link><pubDate>Wed, 14 Jan 2004 19:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:58688</guid><dc:creator>Eric Lippert</dc:creator><description>Re: It's about time -- yeah, sorry about that.  Had there been blogging technology six years ago, I would have been all over that.  At that time though I was all over the newsgroup technology, which is much more question-and-answer oriented, and not very many people ask questions about the low level details.&lt;br&gt;&lt;br&gt;Re: marshaling dispex -- in dispex.dll there's code that marshals an IDispatchEx object.  We wrote it on the off chance that someone would need it someday, but no one has really asked about it much since.&lt;br&gt;&lt;br&gt;Now that I know that there is some interest here, I may digress into a more detailed explanation of IActiveScript/Parse/Site/etc, IDispatchEx, and the other interfaces that we use.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=58688" width="1" height="1"&gt;</description></item><item><title>re: Script And IE Security Part Two: Digging Deeper</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx#58675</link><pubDate>Wed, 14 Jan 2004 18:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:58675</guid><dc:creator>James Hugard</dc:creator><description>&amp;lt;i&amp;gt;&amp;quot;[...], I recognize that there will always be people who want to talk to the classic COM engines at a low level, so this stuff is for you guys.&amp;quot;&amp;lt;/i&amp;gt; &lt;br&gt;&lt;br&gt;Eric:&lt;br&gt;&lt;br&gt;Just want to say thanks too.&lt;br&gt;&lt;br&gt;Fourteen months ago I went out on a limb and proposed moving our product from a proprietary script engine to an IActiveScript core with supporting scriptable COM objects.  After much hard work, I developed a high-performance multi-threaded and cached scripting engine and supporting objects.  It has worked extremely well so far, giving us tremendous performance improvements (my predecessor's script engine was not very efficient), a huge number of new language features, source level debugging, and improved programmer productivity (especially mine ;-).&lt;br&gt;&lt;br&gt;Anyway, it is unlikely that we will ever invest in a move to .NET so any and all classic COM engine information will be very much appreciated.&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=58675" width="1" height="1"&gt;</description></item><item><title>re: Script And IE Security Part Two: Digging Deeper</title><link>http://blogs.msdn.com/b/ericlippert/archive/2004/01/13/58403.aspx#58528</link><pubDate>Wed, 14 Jan 2004 10:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:58528</guid><dc:creator>Dan Shappir</dc:creator><description>Eric, thanks for the info. It's way overtime that it was made available. Put another way, this would have been *very* helpful to me about six years ago.&lt;br&gt;&lt;br&gt;A few additional points (which I assume you are well aware off):&lt;br&gt;&lt;br&gt;You can mark a control as safe for scripting or safe of initialization by simply putting some flags in the registry as a part of that control's registration (categories). The advantage of using the IObjectSafety interface is that it allows you to dynamically modify your behavior. That is, if an untrusted script is asking for permission to use the control, the control can allow it but limit the functionality it exposes.&lt;br&gt;&lt;br&gt;The control can even check if it is hosted by IE. If so, the control can determine the current security zone, for example, and modify its behavior based on that.&lt;br&gt;&lt;br&gt;One more comment: the IDispatchEx interface is one of the most useful secrets kept by Microsoft during the COM heyday. I found it so useful that I went as far as implementing an ATL-like class for it (style IDispatchImpl). Shame that it's not supported by the Universal Marshaler (I learned that the hard way).&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=58528" width="1" height="1"&gt;</description></item></channel></rss>