<?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"
	>
<channel>
	<title>Comments on: Protection against CSRF</title>
	<atom:link href="http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/</link>
	<description>A tool for designers dealing with programmers dealing with designers...</description>
	<pubDate>Tue, 30 Sep 2008 23:34:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: dblackshell</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-1243</link>
		<dc:creator>dblackshell</dc:creator>
		<pubDate>Mon, 02 Jun 2008 15:50:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-1243</guid>
		<description>@Shahar Evron

the token could be retrieved via dynamic script tags... a way to prevent that is by requesting a new token via AJAX when the page is loaded... on a normal form retrieval the hidden field should be blank.</description>
		<content:encoded><![CDATA[<p>@Shahar Evron</p>
<p>the token could be retrieved via dynamic script tags&#8230; a way to prevent that is by requesting a new token via AJAX when the page is loaded&#8230; on a normal form retrieval the hidden field should be blank.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-547</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Fri, 07 Sep 2007 10:05:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-547</guid>
		<description>It's hard for me to provide you advice without knowing the details of your system but I'll have a go...

I would say enforce a password which would solve any CSRF problem. So for example if you are accept a site request on your OpenID provider site do not allow a user to save the password. Make them enter the password on each request. The only way an attacker could exploit this is to either send the valid password or ride the user's session.

Let me know if that helps or please provide me with a brief description on how your site works and I'll let you know the possible attack vectors and prevention.</description>
		<content:encoded><![CDATA[<p>It&#8217;s hard for me to provide you advice without knowing the details of your system but I&#8217;ll have a go&#8230;</p>
<p>I would say enforce a password which would solve any CSRF problem. So for example if you are accept a site request on your OpenID provider site do not allow a user to save the password. Make them enter the password on each request. The only way an attacker could exploit this is to either send the valid password or ride the user&#8217;s session.</p>
<p>Let me know if that helps or please provide me with a brief description on how your site works and I&#8217;ll let you know the possible attack vectors and prevention.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph Wilk</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-546</link>
		<dc:creator>Joseph Wilk</dc:creator>
		<pubDate>Fri, 07 Sep 2007 09:51:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-546</guid>
		<description>Is it possible to protect against CSRF without relying on server state?

Generally I have to try and avoid using state as  much as possible to try and maintain a strict REST model.</description>
		<content:encoded><![CDATA[<p>Is it possible to protect against CSRF without relying on server state?</p>
<p>Generally I have to try and avoid using state as  much as possible to try and maintain a strict REST model.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-428</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Tue, 21 Aug 2007 20:26:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-428</guid>
		<description>Here's a POC I did for MyOpenID which they've now fixed. They used a form token but I got round it :)

http://www.thespanner.co.uk/wp-content/uploads/2007/06/openid.zip

Description about it here:-
http://www.thespanner.co.uk/2007/06/29/openid-security-issues/

This attack is quite difficult to protect against as it uses a new window to perform the attack. If you follow the advice in the post, you will be a much more difficult target.</description>
		<content:encoded><![CDATA[<p>Here&#8217;s a POC I did for MyOpenID which they&#8217;ve now fixed. They used a form token but I got round it <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.thespanner.co.uk/wp-content/uploads/2007/06/openid.zip" rel="nofollow">http://www.thespanner.co.uk/wp-content/uploads/2007/06/openid.zip</a></p>
<p>Description about it here:-<br />
<a href="http://www.thespanner.co.uk/2007/06/29/openid-security-issues/" rel="nofollow">http://www.thespanner.co.uk/2007/06/29/openid-security-issues/</a></p>
<p>This attack is quite difficult to protect against as it uses a new window to perform the attack. If you follow the advice in the post, you will be a much more difficult target.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-427</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Tue, 21 Aug 2007 20:21:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-427</guid>
		<description>Yeah session fixation.

You assign the user a session which you already know the answer to. That's why I've included expiry dates on the tokens.</description>
		<content:encoded><![CDATA[<p>Yeah session fixation.</p>
<p>You assign the user a session which you already know the answer to. That&#8217;s why I&#8217;ve included expiry dates on the tokens.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bipin 3~ Upadhyay</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-426</link>
		<dc:creator>Bipin 3~ Upadhyay</dc:creator>
		<pubDate>Tue, 21 Aug 2007 20:17:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-426</guid>
		<description>&lt;i&gt;I find the whole security=restricted thing very interesting...&lt;/i&gt;
Same here.
There's one more thing that I'd like to ask. Considering that the src inside the restricted frame is executed as "a site in IE's 'restriced zone'", which means that javascript is disabled (unless it breaks out of the window, of course), can you think some attack other than Phishing the end user.

I hope I was clear enough. We might continue the discussion here: http://sla.ckers.org/forum/read.php?2,13324</description>
		<content:encoded><![CDATA[<p><i>I find the whole security=restricted thing very interesting&#8230;</i><br />
Same here.<br />
There&#8217;s one more thing that I&#8217;d like to ask. Considering that the src inside the restricted frame is executed as &#8220;a site in IE&#8217;s &#8216;restriced zone&#8217;&#8221;, which means that javascript is disabled (unless it breaks out of the window, of course), can you think some attack other than Phishing the end user.</p>
<p>I hope I was clear enough. We might continue the discussion here: <a href="http://sla.ckers.org/forum/read.php?2,13324" rel="nofollow">http://sla.ckers.org/forum/read.php?2,13324</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-425</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Tue, 21 Aug 2007 15:49:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-425</guid>
		<description>In fact if anyone wishes to expand my javascript/php generation class let me know and I'll include the update on my blog with credits.

I find the whole security=restricted thing very interesting because the feature is also a security hole and to protect it you create a catch 22 situation :) e.g. You need javascript to execute the token, you need to stop javascript to prevent the frame breaker :D</description>
		<content:encoded><![CDATA[<p>In fact if anyone wishes to expand my javascript/php generation class let me know and I&#8217;ll include the update on my blog with credits.</p>
<p>I find the whole security=restricted thing very interesting because the feature is also a security hole and to protect it you create a catch 22 situation <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> e.g. You need javascript to execute the token, you need to stop javascript to prevent the frame breaker <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-424</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Tue, 21 Aug 2007 15:45:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-424</guid>
		<description>Cookies could be used here. You could execute javascript and then assign the cookie that would work and that's how my comment spam plugin works. But I wanted a method without cookies, I like a challenge ;)

My other post deals with the javascript/php creation and includes source code if you want to take a look:-
http://www.thespanner.co.uk/2007/08/15/random-javascript-and-php-generation/

obfuscating js :)

The code could be easily be expanded upon to include other generation methods if needed.</description>
		<content:encoded><![CDATA[<p>Cookies could be used here. You could execute javascript and then assign the cookie that would work and that&#8217;s how my comment spam plugin works. But I wanted a method without cookies, I like a challenge <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>My other post deals with the javascript/php creation and includes source code if you want to take a look:-<br />
<a href="http://www.thespanner.co.uk/2007/08/15/random-javascript-and-php-generation/" rel="nofollow">http://www.thespanner.co.uk/2007/08/15/random-javascript-and-php-generation/</a></p>
<p>obfuscating js <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The code could be easily be expanded upon to include other generation methods if needed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bipin 3~ Upadhyay</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-423</link>
		<dc:creator>Bipin 3~ Upadhyay</dc:creator>
		<pubDate>Tue, 21 Aug 2007 15:35:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-423</guid>
		<description>&lt;i&gt;Let me know if you can break it :)&lt;/i&gt;
hehe...

Just curious, how are you generating the javascript code to create nonce?

One more thing. Pdp had suggested using cookie value as the nonce in his essay. Even if we are paranoid about not allowing cookie value to be cached in the browser (and other similar issues), wouldn't a simple mutated form of cookie value be an equally good nonce?

p.s.:At first look, I thought you are obfuscating some JS code :P</description>
		<content:encoded><![CDATA[<p><i>Let me know if you can break it <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </i><br />
hehe&#8230;</p>
<p>Just curious, how are you generating the javascript code to create nonce?</p>
<p>One more thing. Pdp had suggested using cookie value as the nonce in his essay. Even if we are paranoid about not allowing cookie value to be cached in the browser (and other similar issues), wouldn&#8217;t a simple mutated form of cookie value be an equally good nonce?</p>
<p>p.s.:At first look, I thought you are obfuscating some JS code <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-422</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Tue, 21 Aug 2007 13:28:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/08/20/protection-against-csrf/#comment-422</guid>
		<description>Here's the iframe one:-
http://www.businessinfo.co.uk/labs/csrf_defend/iframe_protection.php

Let me know if you can break it :)</description>
		<content:encoded><![CDATA[<p>Here&#8217;s the iframe one:-<br />
<a href="http://www.businessinfo.co.uk/labs/csrf_defend/iframe_protection.php" rel="nofollow">http://www.businessinfo.co.uk/labs/csrf_defend/iframe_protection.php</a></p>
<p>Let me know if you can break it <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>
