<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Danny Thorpe &#187; cross-domain</title>
	<atom:link href="http://dannythorpe.com/tag/cross-domain/feed/" rel="self" type="application/rss+xml" />
	<link>http://dannythorpe.com</link>
	<description></description>
	<lastBuildDate>Mon, 07 Jun 2010 17:57:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IE8 Cross-Domain Request Support Demo</title>
		<link>http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/</link>
		<comments>http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 19:55:15 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Access-Control-Check header]]></category>
		<category><![CDATA[cross-domain]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[XDomainRequest]]></category>
		<category><![CDATA[XDR]]></category>
		<category><![CDATA[XmlHttpRequest]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/</guid>
		<description><![CDATA[Adrian Bateman of the IE8 team has posted a video showing how to use IE8&#8217;s new XDomanRequest object to request data from a URL that is not in the current HTML page&#8217;s domain. He also shows how to make an (almost) equivalent cross-domain call in a beta build of Firefox 3.1.
This makes use of the [...]]]></description>
			<content:encoded><![CDATA[<p>Adrian Bateman of the IE8 team has posted a video showing <a href="http://blogs.msdn.com/ie/archive/2009/01/14/completing-access-control-support-for-xdomainrequest.aspx">how to use IE8&#8217;s new XDomanRequest object</a> to request data from a URL that is not in the current HTML page&#8217;s domain. He also shows how to make an (almost) equivalent cross-domain call in a beta build of Firefox 3.1.</p>
<p>This makes use of the new Access-Control-Check header that has been inching its way through standards committes for the past few years. It works like this: </p>
<ol>
<li>Script running in the browser makes a request for a URL outside the current document&#8217;s domain</li>
<li>The browser retrieve the requested page and examines the page&#8217;s headers for an Access-Control-Check header.</li>
<li>If the page does not have an Access-Control-Check header, the browser fails the request and the script never sees the data.</li>
<li>If the page has an Access-Control-Check header but the domain(s) listed in the header don&#8217;t match the domain of the document making the request, the browser fails the request and the script never sees the data.</li>
<li>If the domain of the current document matches the domain spec in the Access-Control-Check header, the browser passes the data through to the waiting request in the script.</li>
</ol>
<p>Existing web pages are automatically excluded from cross-domain requests.  That is to say, script can request it and the browser will actually fetch the page, but the script will never see the results.  This is slightly different from how older browsers handle cross-domain requests &#8211; the request is shut down when the browser notices that the requested URL doesn&#8217;t match the current document&#8217;s domain, before anything crosses the wire. </p>
<p>It seems conceivable to me that under this Access-Control-Check scheme, malicious web pages could launch a distributed Denial of Service attack against a particular server using cross-domain requests.  It doesn&#8217;t matter that the script never actually receives the data, the damage has already been done by requesting the page from the target server.  Is there any way for the server to ignore such requests?  I don&#8217;t know.  I&#8217;m sure the standards committees have discussed this at length.</p>
<p>This caveat aside, it&#8217;s exciting to see cross-domain support working its way into the major browsers.  I look forward to tinkering with it in IE8.</p>
<p>Check out the video on Adrian&#8217;s blog post.  You&#8217;ll probably want to <a href="http://ieblog.members.winisp.net/images/XdomainRequest-small.wmv">download the .wmv directly</a> to view it full screen in your local video player, as the video box in the blog post is far too small to see what is going on on the screen and the Flash player doesn&#8217;t appear to provide any way to zoom it up to a more useful size.  Odd.</p>
<p>Found via <a href="http://ajaxian.com/archives/access-control-in-ie-8">Ajaxian</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ieblog.members.winisp.net/images/XdomainRequest-small.wmv" length="9822958" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Cross-Domain Transport with Window.Name</title>
		<link>http://dannythorpe.com/2008/07/28/cross-domain-transport-with-windowname/</link>
		<comments>http://dannythorpe.com/2008/07/28/cross-domain-transport-with-windowname/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 21:46:44 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[cross-domain]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[window.name]]></category>
		<category><![CDATA[XDR]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/07/28/cross-domain-transport-with-windowname/</guid>
		<description><![CDATA[In the fall of 2006 I was wrestling with VS debugging JavaScript in IE and Venkman in Firefox teasing out problems and holes in the cross-domain channel library we were building for Windows Live and the Windows Live Contacts Control.
One of the most aggrevating aspects of debugging cross-domain JavaScript is that JavaScript debuggers do not provide the same degree [...]]]></description>
			<content:encoded><![CDATA[<p>In the fall of 2006 I was wrestling with VS debugging JavaScript in IE and <a href="http://www.mozilla.org/projects/venkman/">Venkman</a> in Firefox teasing out problems and holes in the <a href="http://msdn.microsoft.com/en-us/library/bb735305.aspx">cross-domain channel library</a> we were building for <a href="http://www.live.com">Windows Live</a> and the <a href="http://dev.live.com/contacts/">Windows Live Contacts Control</a>.</p>
<p>One of the most aggrevating aspects of debugging cross-domain JavaScript is that JavaScript debuggers do not provide the same degree of omniscience we have come to expect from full-featured desktop application debuggers. The reason is that the debugger operates inside the browser, rather than above the browser.  To evaluate an expression, the debugger has to ask the browser&#8217;s JavaScript engine for the element values, or to evaluate the expression itself. Since the debugger is relying on the browser for evaluation, and the browser has access firewalls all over the place to implement same-domain policy restrictions, the debugger can&#8217;t see anything more than what the JavaScript itself can see.  A debugger attached to the execution context of a top level HTML page can&#8217;t see inside the iframes sitting on that page if the iframes are showing pages from a different domain.</p>
<p>This is fixable, but I doubt that it will ever be fixed. I suspect it would be a major restructuring of the browser code to allow a debugger to circumvent the browser&#8217;s security restrictions and see JavaScript state from all domain contexts concurrently. Even just a casual mention of this idea to Mozilla or Microsoft browser teams draws up such fear in their eyes that you change the subject to avoid someone going postal. I can&#8217;t really blame them &#8211; both browser code bases are huge and hairy, and infamous for inflicting great gouts of pain on well-meaning tinkerers who venture too far into the forest. </p>
<p>Besides, it&#8217;s fair to say that the browser teams&#8217; first priority is data security and safety. Omniscient debugger support is understandably lower on their priority list.</p>
<p>At any rate, while I was poking and prodding my cross-domain experiments trying to get a mental picture of how code reality was diverging from the whiteboard spec, I would occasionally notice an odd artifact out of the corner of my evaluator.  Well, this is JavaScript - odd side effects are the norm. On one of these sorties I noticed that the window.name property was preserved across reloads of an iframe.</p>
<p><em>Now that&#8217;s odd.</em></p>
<p>My tinkering took off on a wild tangent.  Passing a lot of data in one string and round-trip would certainly be faster than doing it in multiple smaller round trips required by fragment identifier messaging (FIM).  However, the more I dug into it the more I found that needed to be chased down.  Frustrated and out of time, I pushed a note onto the &#8220;investigate this further&#8221; queue and forced myself back onto the plan of record.</p>
<p>Fast forward to 2008.  <a href="http://www.sitepen.com/blog/2008/07/22/windowname-transport/">Kris Zyp has implemented a cross-domain transport for the Dojo JavaScript library using window.name.</a> Kudos to Zyp for doing the legwork to turn the window.name oddity into a usable data transport pipe <em>and</em> shore up the holes and security vulnerabilities of the raw technique. </p>
<p>I read his post (discovered via <a href="http://ajaxian.com/archives/windowname-meet-dojoxiowindowname">Ajaxian</a>) with skepticism, armed with an array of  &#8221;Yeah, but what about&#8230;&#8221; challenges and security issues I vaguely recall running into in my late night tangent.  Zyp knocked them all down one by one in his detailed writeup.</p>
<p>Well done!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/07/28/cross-domain-transport-with-windowname/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Silverlight Supports Cross-Domain Calls</title>
		<link>http://dannythorpe.com/2008/06/25/silverlight-supports-cross-domain-calls/</link>
		<comments>http://dannythorpe.com/2008/06/25/silverlight-supports-cross-domain-calls/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 21:23:15 +0000</pubDate>
		<dc:creator>dthorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[cross-domain]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[XDR]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/06/25/silverlight-supports-cross-domain-calls/</guid>
		<description><![CDATA[In getting back up to speed with Silverlight, and in particular the new Silverlight 2 beta 2, I&#8217;ve been surfing through the many quickstart topics on various web sites. While skimming &#8220;Receiving Plain XML Messages with Silverlight&#8221; these words lept out at me:
note: The WebClient class does not currently support cross-domain calls.
Say what?
The article then [...]]]></description>
			<content:encoded><![CDATA[<p>In getting back up to speed with <a href="http://www.microsoft.com/Silverlight/">Silverlight</a>, and in particular the new <a href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx">Silverlight 2 beta 2</a>, I&#8217;ve been surfing through the many quickstart topics on various web sites. While skimming &#8220;<a href="http://www.silverlight.net/Quickstarts/Remote/UsingREST.aspx">Receiving Plain XML Messages with Silverlight</a>&#8221; these words lept out at me:</p>
<blockquote><p><strong>note</strong>: The <span class="nolink">WebClient</span> class does not currently support cross-domain calls.</p></blockquote>
<p>Say what?</p>
<p>The article then proceeds to show how to make an XML call using Silverlight&#8217;s WebClient class, and oh by the way it&#8217;s a cross domain call.</p>
<p>Nice job, guys.</p>
<p>Here&#8217;s what that article probably meant to say, but managed to get lost in the words:</p>
<h3>Silverlight&#8217;s WebClient class supports cross-domain HTTP requests *IF* the target server allows cross-domain requests. </h3>
<p>It really is that simple. </p>
<p>To configure a server to support cross-domain requests, read &#8220;<a href="http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx">How to: Make a Service Available Across Domain Boundaries</a>&#8220;. </p>
]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/06/25/silverlight-supports-cross-domain-calls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
