<?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: Dangers of Remote Scripting</title>
	<atom:link href="http://ajaxian.com/archives/dangers-of-remote-scripting/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/dangers-of-remote-scripting</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Sun, 21 Mar 2010 02:12:15 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Adnan Siddiqi</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260700</link>
		<dc:creator>Adnan Siddiqi</dc:creator>
		<pubDate>Tue, 22 Jan 2008 05:54:22 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260700</guid>
		<description>My Two Cents:
tinyurl.com/3yvxks</description>
		<content:encoded><![CDATA[<p>My Two Cents:<br />
tinyurl.com/3yvxks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alexeiwhite</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260692</link>
		<dc:creator>alexeiwhite</dc:creator>
		<pubDate>Mon, 21 Jan 2008 22:11:57 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260692</guid>
		<description>That was actually pretty clever for the porn site to do that. Touche, porno, touche.</description>
		<content:encoded><![CDATA[<p>That was actually pretty clever for the porn site to do that. Touche, porno, touche.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: crock</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260671</link>
		<dc:creator>crock</dc:creator>
		<pubDate>Mon, 21 Jan 2008 03:54:31 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260671</guid>
		<description>Safe JavaScript subsets are a good option. ADsafe.org and Caja are two examples. They can work, but it is difficult to have confidence in them. It seems almost certain that new holes will be discovered which will render them useless. So in my view, safe subsets are at best a short term solution. I say that as the developer of ADsafe. I know the guys doing Caja. They are really smart, and I think Caja is good stuff. But I think they would agree with me about the vulnerability of the platform.

So we should proceed on the next level, adding communicating vats and modules. This will at least give us cooperation and better containment, but we will still be subject to XSS attacks.

XSS is a direct consequence of the design of JavaScript. JavaScript is an insecure language that invites XSS attacks. The current ES4 proposal preserves the weakness in favor of compatibility, so it is not a solution. 

Ultimately we need to replace JavaScript with a secure language. That is the only way to protect our sites and our users from XSS. It will take a while to get such a thing designed, implemented, tested, standardized, and deployed, so we should proceed on that as well.</description>
		<content:encoded><![CDATA[<p>Safe JavaScript subsets are a good option. ADsafe.org and Caja are two examples. They can work, but it is difficult to have confidence in them. It seems almost certain that new holes will be discovered which will render them useless. So in my view, safe subsets are at best a short term solution. I say that as the developer of ADsafe. I know the guys doing Caja. They are really smart, and I think Caja is good stuff. But I think they would agree with me about the vulnerability of the platform.</p>
<p>So we should proceed on the next level, adding communicating vats and modules. This will at least give us cooperation and better containment, but we will still be subject to XSS attacks.</p>
<p>XSS is a direct consequence of the design of JavaScript. JavaScript is an insecure language that invites XSS attacks. The current ES4 proposal preserves the weakness in favor of compatibility, so it is not a solution. </p>
<p>Ultimately we need to replace JavaScript with a secure language. That is the only way to protect our sites and our users from XSS. It will take a while to get such a thing designed, implemented, tested, standardized, and deployed, so we should proceed on that as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael Bergkvist</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260670</link>
		<dc:creator>Mikael Bergkvist</dc:creator>
		<pubDate>Sun, 20 Jan 2008 22:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260670</guid>
		<description>If there was a service that one could route the js through, that &#039;stripped out&#039; dangerous code before delivering it to the page requesting it?</description>
		<content:encoded><![CDATA[<p>If there was a service that one could route the js through, that &#8217;stripped out&#8217; dangerous code before delivering it to the page requesting it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Schill</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260667</link>
		<dc:creator>Schill</dc:creator>
		<pubDate>Sun, 20 Jan 2008 16:48:46 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260667</guid>
		<description>Perhaps domain-aware JS would help, whereby script called from a remote domain would not have permission to set window.location and so on. &quot;Then again&quot;, this may not really work as any CDNs serving JS would then have issues (Akamai and so forth), despite being used for legitimate purposes. There is a lot of implicit trust in the ad model, this is an interesting (and unfortunate) example of that breaking.</description>
		<content:encoded><![CDATA[<p>Perhaps domain-aware JS would help, whereby script called from a remote domain would not have permission to set window.location and so on. &#8220;Then again&#8221;, this may not really work as any CDNs serving JS would then have issues (Akamai and so forth), despite being used for legitimate purposes. There is a lot of implicit trust in the ad model, this is an interesting (and unfortunate) example of that breaking.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shokk</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260666</link>
		<dc:creator>shokk</dc:creator>
		<pubDate>Sun, 20 Jan 2008 15:30:28 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260666</guid>
		<description>Secret handshake using public and private keys would take no more effort than HTTPS.  It&#039;s where everything is headed.HTTPS itself shouldn&#039;t be considered secure since many just hit OK/Continue when the dialog pops up saying there is something wrong with the cert.</description>
		<content:encoded><![CDATA[<p>Secret handshake using public and private keys would take no more effort than HTTPS.  It&#8217;s where everything is headed.HTTPS itself shouldn&#8217;t be considered secure since many just hit OK/Continue when the dialog pops up saying there is something wrong with the cert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph Annino</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260665</link>
		<dc:creator>Joseph Annino</dc:creator>
		<pubDate>Sun, 20 Jan 2008 15:01:57 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260665</guid>
		<description>This does raise an interesting problem that is hard to solve.  Partnerships that involve running remote javascript are an important part of a lot of web sites.  Its a powerful technology, allowing richer ads, content syndication, and outsourcing of page components, so business logic in javascript isn&#039;t going to go away.  It does increase your attack surface because a compromise of any of your partners can effect your site, as it did here. 

You can&#039;t really do any sort of validation in javascript, because the logic to do so would be out in the open and easily faked.  I think a hybrid approach might be the best solution.  Have you server do a &quot;secret handshake&quot; with the partner every so often, and if it fails then don&#039;t display the script tag for their service.  The handshake could go as far a cryptographic signing system that requires active support on the partner&#039;s server, or it could be a passive system that checks for the existence of certain hidden urls and that the whois information hasn&#039;t changed.

Any other ideas?</description>
		<content:encoded><![CDATA[<p>This does raise an interesting problem that is hard to solve.  Partnerships that involve running remote javascript are an important part of a lot of web sites.  Its a powerful technology, allowing richer ads, content syndication, and outsourcing of page components, so business logic in javascript isn&#8217;t going to go away.  It does increase your attack surface because a compromise of any of your partners can effect your site, as it did here. </p>
<p>You can&#8217;t really do any sort of validation in javascript, because the logic to do so would be out in the open and easily faked.  I think a hybrid approach might be the best solution.  Have you server do a &#8220;secret handshake&#8221; with the partner every so often, and if it fails then don&#8217;t display the script tag for their service.  The handshake could go as far a cryptographic signing system that requires active support on the partner&#8217;s server, or it could be a passive system that checks for the existence of certain hidden urls and that the whois information hasn&#8217;t changed.</p>
<p>Any other ideas?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: polterguy</title>
		<link>http://ajaxian.com/archives/dangers-of-remote-scripting/comment-page-1#comment-260664</link>
		<dc:creator>polterguy</dc:creator>
		<pubDate>Sun, 20 Jan 2008 13:09:52 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=3226#comment-260664</guid>
		<description>This is a general problem about having Business Logic in JavaScript which I have written about several times... ;)
We have a model where no BL is written in JavaScript but rather on the server which removes a whole slew of problems, this one too in fact...
Another thing it removes is the whole &quot;Ajax is insecure&quot; thing since everything executes on the server and as long as your server is secure then your Ajax Solution is secure since everything you do you do on the server.</description>
		<content:encoded><![CDATA[<p>This is a general problem about having Business Logic in JavaScript which I have written about several times&#8230; ;)<br />
We have a model where no BL is written in JavaScript but rather on the server which removes a whole slew of problems, this one too in fact&#8230;<br />
Another thing it removes is the whole &#8220;Ajax is insecure&#8221; thing since everything executes on the server and as long as your server is secure then your Ajax Solution is secure since everything you do you do on the server.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
