<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: How Bad Crossdomain Policies Expose Protected Data to Malicious Applications</title>
	<atom:link href="http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/</link>
	<description>Rich Internet Applications &#124; Flex &#124; Adobe AIR &#124; Java &#124; Open Source &#124; Linux &#124; Enterprise Software &#124; Cloud</description>
	<lastBuildDate>Wed, 10 Mar 2010 05:25:22 +0000</lastBuildDate>
	
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: James Ward</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158130</link>
		<dc:creator>James Ward</dc:creator>
		<pubDate>Mon, 09 Nov 2009 23:09:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158130</guid>
		<description>Hi Adi R,

It&#039;s pretty easy to base authentication off of a database table that maps tokens to users.  That&#039;s what I&#039;ve done in the past.  It gets away from cookies / basic auth but it does require the user to reauthenticate every time they use the app (unless you use a Local Shared Object).

-James</description>
		<content:encoded><![CDATA[<p>Hi Adi R,</p>
<p>It&#8217;s pretty easy to base authentication off of a database table that maps tokens to users.  That&#8217;s what I&#8217;ve done in the past.  It gets away from cookies / basic auth but it does require the user to reauthenticate every time they use the app (unless you use a Local Shared Object).</p>
<p>-James</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adi R</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158129</link>
		<dc:creator>Adi R</dc:creator>
		<pubDate>Mon, 09 Nov 2009 22:27:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158129</guid>
		<description>Follow-up comment to my own comment.

After spending more time thinking about it, I think I understand now. The malicious app is making a request to the original resource on firststepsinflex.com . Browser sends a cookie there, because that is where the cookie originated.

So, I am actually in agreement with Ricardo that crossdomain policy is a weak link in this approach. Can you talk a bit (perhaps in a next blog) about alternatives to securing BlazeDS app via web-service tokens, rather than cookie/basic auth?</description>
		<content:encoded><![CDATA[<p>Follow-up comment to my own comment.</p>
<p>After spending more time thinking about it, I think I understand now. The malicious app is making a request to the original resource on firststepsinflex.com . Browser sends a cookie there, because that is where the cookie originated.</p>
<p>So, I am actually in agreement with Ricardo that crossdomain policy is a weak link in this approach. Can you talk a bit (perhaps in a next blog) about alternatives to securing BlazeDS app via web-service tokens, rather than cookie/basic auth?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adi R</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158127</link>
		<dc:creator>Adi R</dc:creator>
		<pubDate>Mon, 09 Nov 2009 22:14:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158127</guid>
		<description>Hi,

Great article and discussion, but I feel like I am still missing something.

Your entire attack vector is based on &quot;you are already authenticated&quot; fact, but shouldn&#039;t cookies follow the server origin policy? That is, the session cookie should only be sent to original server it came from, no? The cross domain policy helps with access to other resources to be pulled in, but the outgoing request to those other domains shouldn&#039;t really contain the source cookie from firststepsinflex.com domain, as I understand the HTTP specs...

Can you shed some light on this?</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Great article and discussion, but I feel like I am still missing something.</p>
<p>Your entire attack vector is based on &#8220;you are already authenticated&#8221; fact, but shouldn&#8217;t cookies follow the server origin policy? That is, the session cookie should only be sent to original server it came from, no? The cross domain policy helps with access to other resources to be pulled in, but the outgoing request to those other domains shouldn&#8217;t really contain the source cookie from firststepsinflex.com domain, as I understand the HTTP specs&#8230;</p>
<p>Can you shed some light on this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Ward</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158124</link>
		<dc:creator>James Ward</dc:creator>
		<pubDate>Mon, 09 Nov 2009 12:34:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158124</guid>
		<description>Hi Ricardo,

Crossdomain.xml is really just a way for a server admin to opt-in to telling the browser to allow cross- domain requests to their server.  It doesn&#039;t create any new security.  It selectively reduces the existing security provided by the browser.  Proxies on the other-hand don&#039;t change anything about the client-side security and should be a much preferred choice over crossdomain.xml files.

-James</description>
		<content:encoded><![CDATA[<p>Hi Ricardo,</p>
<p>Crossdomain.xml is really just a way for a server admin to opt-in to telling the browser to allow cross- domain requests to their server.  It doesn&#8217;t create any new security.  It selectively reduces the existing security provided by the browser.  Proxies on the other-hand don&#8217;t change anything about the client-side security and should be a much preferred choice over crossdomain.xml files.</p>
<p>-James</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Santos</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158123</link>
		<dc:creator>Ricardo Santos</dc:creator>
		<pubDate>Mon, 09 Nov 2009 12:15:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158123</guid>
		<description>Hi James,

Thanks for your reply! 

So correct me if I&#039;m wrong, but shouldn&#039;t this work the opposite way and the client application have a list of allowed domains it can retrieve data from? I just fail to see the profit in having a client specific setting hanging on a server that knows &quot;nothing&quot; about the client.

This has been a topic of discussion between me and Flex developers for a while, as I don&#039;t like to pollute my servers with several crossdomain.xml files across all of the back-end domains I use, serving several Flash front-ends from several other different domains (having to pre-set them all on separate locations). Of course I could just have an alias serving a allow from all site, but I feel that then it would be plain stupid and it would raise the issues you pointed out here.

Ricardo</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>Thanks for your reply! </p>
<p>So correct me if I&#8217;m wrong, but shouldn&#8217;t this work the opposite way and the client application have a list of allowed domains it can retrieve data from? I just fail to see the profit in having a client specific setting hanging on a server that knows &#8220;nothing&#8221; about the client.</p>
<p>This has been a topic of discussion between me and Flex developers for a while, as I don&#8217;t like to pollute my servers with several crossdomain.xml files across all of the back-end domains I use, serving several Flash front-ends from several other different domains (having to pre-set them all on separate locations). Of course I could just have an alias serving a allow from all site, but I feel that then it would be plain stupid and it would raise the issues you pointed out here.</p>
<p>Ricardo</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Apukeittiö.fi &#187; Blog Archive &#187; Crossdomain.xml ja turvallisuus</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158122</link>
		<dc:creator>Apukeittiö.fi &#187; Blog Archive &#187; Crossdomain.xml ja turvallisuus</dc:creator>
		<pubDate>Mon, 09 Nov 2009 12:04:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158122</guid>
		<description>[...] nyt jo korjattu haavoittuvuus johtui huonosti suunnitellusta crossdomain politiikasta. James Ward esittää havainnollisesti esimerkein miten homma toimii. Käytännössä palvelin jossa käytetään cookieita ja [...]</description>
		<content:encoded><![CDATA[<p>[...] nyt jo korjattu haavoittuvuus johtui huonosti suunnitellusta crossdomain politiikasta. James Ward esittää havainnollisesti esimerkein miten homma toimii. Käytännössä palvelin jossa käytetään cookieita ja [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Ward</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158121</link>
		<dc:creator>James Ward</dc:creator>
		<pubDate>Mon, 09 Nov 2009 11:33:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158121</guid>
		<description>Hi Ricardo,

You are right that crossdomain.xml files do not actually protect data on a server.  They only provide a way for the browser to bypass the same-origin policy. There were some attacks that utilized fake crossdomain policy files.  For instance if a site allowed anyone to upload files to it then an attacker could easily inject custom policy that would open the site to attacks.  This type of attack was blocked with the introduction of master policies.  Read more about those in the articles I link to above.

-James</description>
		<content:encoded><![CDATA[<p>Hi Ricardo,</p>
<p>You are right that crossdomain.xml files do not actually protect data on a server.  They only provide a way for the browser to bypass the same-origin policy. There were some attacks that utilized fake crossdomain policy files.  For instance if a site allowed anyone to upload files to it then an attacker could easily inject custom policy that would open the site to attacks.  This type of attack was blocked with the introduction of master policies.  Read more about those in the articles I link to above.</p>
<p>-James</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Ward</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158120</link>
		<dc:creator>James Ward</dc:creator>
		<pubDate>Mon, 09 Nov 2009 11:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158120</guid>
		<description>Hi skiN,

I could have limited the crossdomain requests on firststepsinflex.com to only be allowed to come from www.jamesward.com which would have made things more secure.  But in that case I&#039;m putting 100% trust in www.jamesward.com to not host any malicious applications.  Since www.jamesward.com runs Wordpress and a numer of other applications which could potentially allow an attacker to put a malicious application on www.jamesward.com it&#039;s usually easier to just follow my two rules than to place that amount of trust in another site.

-James</description>
		<content:encoded><![CDATA[<p>Hi skiN,</p>
<p>I could have limited the crossdomain requests on firststepsinflex.com to only be allowed to come from <a href="http://www.jamesward.com" rel="nofollow">http://www.jamesward.com</a> which would have made things more secure.  But in that case I&#8217;m putting 100% trust in <a href="http://www.jamesward.com" rel="nofollow">http://www.jamesward.com</a> to not host any malicious applications.  Since <a href="http://www.jamesward.com" rel="nofollow">http://www.jamesward.com</a> runs Wordpress and a numer of other applications which could potentially allow an attacker to put a malicious application on <a href="http://www.jamesward.com" rel="nofollow">http://www.jamesward.com</a> it&#8217;s usually easier to just follow my two rules than to place that amount of trust in another site.</p>
<p>-James</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Santos</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158119</link>
		<dc:creator>Ricardo Santos</dc:creator>
		<pubDate>Mon, 09 Nov 2009 10:13:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158119</guid>
		<description>Thank you for your article, I always had this doubt that maybe you can you explain, what keeps a malicious developer from finding a way to deliver a fake crossdomain.xml to the client or even hacking it to simply ignore any crossdomain file and access any data from anywhere?

From a non Flex developer point of view, crossdomain.xml only relation to the server is that it &quot;lays there&quot;. To my knowledge, it isn&#039;t configured together with any of the services provided there, so to the server it is just a normal file it serves via HTTP like any other, if it is a server policy file, the server knows nothing about that.

I mean, it would all make sense if for instance you would show me some web server configuration that would load that file and respect the policies set there. If those are security validations made on the client side then for me there is no security at all.

I would appreciate if someone can clear this out for me, as this always felt really wrong for me and I expect that there is something that I&#039;m passing out on.</description>
		<content:encoded><![CDATA[<p>Thank you for your article, I always had this doubt that maybe you can you explain, what keeps a malicious developer from finding a way to deliver a fake crossdomain.xml to the client or even hacking it to simply ignore any crossdomain file and access any data from anywhere?</p>
<p>From a non Flex developer point of view, crossdomain.xml only relation to the server is that it &#8220;lays there&#8221;. To my knowledge, it isn&#8217;t configured together with any of the services provided there, so to the server it is just a normal file it serves via HTTP like any other, if it is a server policy file, the server knows nothing about that.</p>
<p>I mean, it would all make sense if for instance you would show me some web server configuration that would load that file and respect the policies set there. If those are security validations made on the client side then for me there is no security at all.</p>
<p>I would appreciate if someone can clear this out for me, as this always felt really wrong for me and I expect that there is something that I&#8217;m passing out on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: skiN</title>
		<link>http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/comment-page-1/#comment-158118</link>
		<dc:creator>skiN</dc:creator>
		<pubDate>Mon, 09 Nov 2009 08:14:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.jamesward.com/blog/?p=1323#comment-158118</guid>
		<description>&quot; If you really need to use a crossdomain policy file then be very careful! NEVER put a crossdomain policy file on a site that uses cookie or basic auth &quot;...  But the site was able to access the secured data because the server firststepsinflex had a wrong cross-domain policy. How will it be harmful if the cross-domain policy was written not to give access to requests from all domains?</description>
		<content:encoded><![CDATA[<p>&#8221; If you really need to use a crossdomain policy file then be very careful! NEVER put a crossdomain policy file on a site that uses cookie or basic auth &#8220;&#8230;  But the site was able to access the secured data because the server firststepsinflex had a wrong cross-domain policy. How will it be harmful if the cross-domain policy was written not to give access to requests from all domains?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
