<?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: Faking the unexpected</title>
	<atom:link href="http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/</link>
	<description>A tool for designers dealing with programmers dealing with designers...</description>
	<pubDate>Sun, 14 Mar 2010 20:33:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-1204</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Fri, 11 Apr 2008 10:18:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-1204</guid>
		<description>Yeah Stefan rocks :)
He has a book? Is it in English? I'd be interested if you could provide a link.</description>
		<content:encoded><![CDATA[<p>Yeah Stefan rocks <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
He has a book? Is it in English? I&#8217;d be interested if you could provide a link.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Handy</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-1203</link>
		<dc:creator>Handy</dc:creator>
		<pubDate>Thu, 10 Apr 2008 23:31:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-1203</guid>
		<description>Nice example. Stefan Esser describes this problem very good in his book about PHP security. By the way, he is the guy, who worked in the PHP Security Response Team.</description>
		<content:encoded><![CDATA[<p>Nice example. Stefan Esser describes this problem very good in his book about PHP security. By the way, he is the guy, who worked in the PHP Security Response Team.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zhaiduo</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-977</link>
		<dc:creator>zhaiduo</dc:creator>
		<pubDate>Wed, 05 Dec 2007 05:44:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-977</guid>
		<description>yep, you are right!</description>
		<content:encoded><![CDATA[<p>yep, you are right!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-973</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Mon, 03 Dec 2007 09:06:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-973</guid>
		<description>@Jack

You need to filter all user supplied data including User-agent etc and I have mentioned many times before how to do this. The article was to highlight the amount of times I've seen PHP code with just $userip = $_SERVER['HTTP_X_FORWARDED_FOR']; and blindly trusting it.</description>
		<content:encoded><![CDATA[<p>@Jack</p>
<p>You need to filter all user supplied data including User-agent etc and I have mentioned many times before how to do this. The article was to highlight the amount of times I&#8217;ve seen PHP code with just $userip = $_SERVER['HTTP_X_FORWARDED_FOR']; and blindly trusting it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jack</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-972</link>
		<dc:creator>Jack</dc:creator>
		<pubDate>Mon, 03 Dec 2007 08:47:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-972</guid>
		<description>Hello,

This article is very good, but gives no viable alternative. Why ?

Jack</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>This article is very good, but gives no viable alternative. Why ?</p>
<p>Jack</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Heyes</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-969</link>
		<dc:creator>Gareth Heyes</dc:creator>
		<pubDate>Sun, 02 Dec 2007 19:58:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-969</guid>
		<description>@Awesome AnDrEw

You must be feeling smug right now :)

I wonder how many feel sick :)</description>
		<content:encoded><![CDATA[<p>@Awesome AnDrEw</p>
<p>You must be feeling smug right now <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I wonder how many feel sick <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Skip Chris</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-968</link>
		<dc:creator>Skip Chris</dc:creator>
		<pubDate>Sun, 02 Dec 2007 19:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-968</guid>
		<description>In my limited 'developer' way, rather than as a webappsec professional, this is one of those things I see all the time, the key culprit being _SERVER['PHP_SELF']... :S

Another common one (though a bit more obvious and less related to this post) is something along the lines of:
www.example.org/controller/action
---&#62;
&#60;form action="&#60;? echo $action; ?&#62;"&#62;</description>
		<content:encoded><![CDATA[<p>In my limited &#8216;developer&#8217; way, rather than as a webappsec professional, this is one of those things I see all the time, the key culprit being _SERVER['PHP_SELF']&#8230; :S</p>
<p>Another common one (though a bit more obvious and less related to this post) is something along the lines of:<br />
<a href="http://www.example.org/controller/action" rel="nofollow">http://www.example.org/controller/action</a><br />
&#8212;&gt;<br />
&lt;form action=&#8221;&lt;? echo $action; ?&gt;&#8221;&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew MacFie</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-967</link>
		<dc:creator>Andrew MacFie</dc:creator>
		<pubDate>Sun, 02 Dec 2007 18:20:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-967</guid>
		<description>I think accepting 'HTTP_X_FORWARDED_FOR' or 'REMOTE_ADDR' values as ultimately correct identifiers for end users is clearly a different problem than failing to perform output validation on user-supplied data.  'HTTP_X_FORWARDED_FOR' and other HTTP headers are of course trivial to spoof, and there is irony in the perceived extra level of security that checking for proxied users appears to provide.  If this information is really required, the developer might want to have a look at some Metasploit Project research (hxxp://metasploit.com/research/misc/decloak/). 

Outputting unfiltered user input is always bad, as shown, but trusting HTTP headers as always legitimate values is far too tempting and a more commonly overlooked source of vulnerability than, say, query strings.</description>
		<content:encoded><![CDATA[<p>I think accepting &#8216;HTTP_X_FORWARDED_FOR&#8217; or &#8216;REMOTE_ADDR&#8217; values as ultimately correct identifiers for end users is clearly a different problem than failing to perform output validation on user-supplied data.  &#8216;HTTP_X_FORWARDED_FOR&#8217; and other HTTP headers are of course trivial to spoof, and there is irony in the perceived extra level of security that checking for proxied users appears to provide.  If this information is really required, the developer might want to have a look at some Metasploit Project research (hxxp://metasploit.com/research/misc/decloak/). </p>
<p>Outputting unfiltered user input is always bad, as shown, but trusting HTTP headers as always legitimate values is far too tempting and a more commonly overlooked source of vulnerability than, say, query strings.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Awesome AnDrEw</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-966</link>
		<dc:creator>Awesome AnDrEw</dc:creator>
		<pubDate>Sun, 02 Dec 2007 16:08:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-966</guid>
		<description>I choose the latter option, and sanitize all user-input and headers.</description>
		<content:encoded><![CDATA[<p>I choose the latter option, and sanitize all user-input and headers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kourge</title>
		<link>http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-965</link>
		<dc:creator>kourge</dc:creator>
		<pubDate>Sun, 02 Dec 2007 15:58:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.thespanner.co.uk/2007/12/02/faking-the-unexpected/#comment-965</guid>
		<description>Clever! This can almost certainly attack sites that display the user's user agent such...</description>
		<content:encoded><![CDATA[<p>Clever! This can almost certainly attack sites that display the user&#8217;s user agent such&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
