<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0cHRn48fSp7ImA9WhZQFE8.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637</id><updated>2011-04-21T16:37:17.075-07:00</updated><category term="owasp" /><category term="linux" /><category term="standards" /><category term="csrf" /><category term="xss" /><category term="fun" /><category term="ideas" /><category term="web" /><category term="torvalds" /><category term="w3af" /><category term="security" /><category term="thoughts" /><title>Sandals On My Head</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://sandals-on-my-head.blogspot.com/" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/sandals-on-my-head" /><feedburner:info uri="sandals-on-my-head" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0YBQXY6fCp7ImA9WxdaEU8.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-5350282132852261207</id><published>2008-07-22T00:26:00.000-07:00</published><updated>2008-08-18T21:45:50.814-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-18T21:45:50.814-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="thoughts" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Why Security Bugs Are Different</title><content type="html">There is a couple of good reasons why security bugs are worse than the 'boring normal' (non-security) ones. &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Security bugs are profitable, casual bugs are not.&lt;/span&gt; Nobody needs to reproduce  'a random spectacular crash due to bad locking' intentionally — that does not make any sense. Functional and reliability issues may happen occasionally. Often, they happen predictably. But none of them happen with intention (unless you're a software tester). So, whenever a casual bug appears, some part of users are affected (that depends on the feature popularity). Whenever a security hole exists, the chances are high, that most of the users are under the threat.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Casual bugs are visible, security bugs are not.&lt;/span&gt; When a casual bug appears, it affects how system works, otherwise, nobody would report the bug. It breaks the user's explicit expectations. With security, the expectations are usually implicit or are entirely connected with what they call 'security features' (authentication, authorization, cryptography). Nobody complains about security bugs, system continues to work.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Well, that's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-5350282132852261207?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/5350282132852261207/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=5350282132852261207" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/5350282132852261207?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/5350282132852261207?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/EgSkwepNhxY/why-security-bugs-are-different.html" title="Why Security Bugs Are Different" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/07/why-security-bugs-are-different.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIGQ3Y_eyp7ImA9WxdVE0o.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-993880817398884051</id><published>2008-07-18T01:33:00.000-07:00</published><updated>2008-07-18T01:42:02.843-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-18T01:42:02.843-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><category scheme="http://www.blogger.com/atom/ns#" term="torvalds" /><title>Torvalds' Plans Revealed</title><content type="html">It is widely discussed now how Torvalds called OpenBSD developers "&lt;a href="http://www.zdnet.com.au/news/security/soa/Torvalds-criticises-the-security-circus-/0,130061744,339290671,00.htm"&gt;a bunch of masturbating monkeys&lt;/a&gt;". Yesterday he also called Digg users a bunch of "&lt;a href="http://lwn.net/Articles/290498/"&gt;wanking walruses&lt;/a&gt;".&lt;br /&gt;Besides that, we know that there is a new kernel version naming system is coming.&lt;br /&gt;&lt;br /&gt;Now, do you see the pattern?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;asturbating &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;onkeys&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;W&lt;/span&gt;anking &lt;span style="font-weight: bold;"&gt;W&lt;/span&gt;alruses&lt;/li&gt;&lt;/ul&gt;Not very original after Ubuntu, but nice anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-993880817398884051?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/993880817398884051/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=993880817398884051" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/993880817398884051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/993880817398884051?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/FxnszHGqDkw/torvalds-plans-revealed.html" title="Torvalds' Plans Revealed" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/07/torvalds-plans-revealed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQNR3k_eip7ImA9WxZbFE4.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-2650255430816402102</id><published>2008-04-17T05:40:00.000-07:00</published><updated>2008-04-17T06:03:16.742-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-17T06:03:16.742-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><category scheme="http://www.blogger.com/atom/ns#" term="w3af" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><title>OWASP supports malware</title><content type="html">Beyond what I'm doing to live, I'm a proud contributor of a nice open source websec scanner &lt;a href="http://w3af.sourceforge.net/"&gt;w3af&lt;/a&gt;. Guys recently applied for the OWASP Summer of Code 2008  to improve the GUI &lt;a href="http://www.owasp.org/index.php/OWASP_Summer_of_Code_2008_Applications#GTK.2B_GUI_for_w3af_project"&gt;and they were selected&lt;/a&gt;! Well done!&lt;br /&gt;&lt;br /&gt;There is a bizarre thing in it, though. &lt;a href="http://www.owasp.org/index.php/Phoenix/Tools"&gt;OWASP still lists w3af as malware&lt;/a&gt; (see the corresponding section). The only reasonable explanation is that w3af is evil, but &lt;span style="font-style: italic;"&gt;its GUI&lt;/span&gt; is not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-2650255430816402102?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/2650255430816402102/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=2650255430816402102" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/2650255430816402102?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/2650255430816402102?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/R3911-u5e2Y/owasp-supports-malware.html" title="OWASP supports malware" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/04/owasp-supports-malware.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQERX48cCp7ImA9WxZUGEk.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-7687753736053557051</id><published>2008-03-24T08:38:00.000-07:00</published><updated>2008-04-10T09:18:24.078-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-10T09:18:24.078-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="ideas" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Other domain for the OOB confirmation</title><content type="html">In my &lt;a href="http://sandals-on-my-head.blogspot.com/2008/03/no-csrf-in-presence-of-xss.html"&gt;recent post&lt;/a&gt; about CSRF I suggested to introduce an additional "Approve" button to the form which would play a role of an out -of-band confirmation mechanism. Now I'll try to improve that slightly.&lt;br /&gt;&lt;br /&gt;First, we have a page with an original form. Also we add a hidden (as yet) IFRAME which is deployed on an other domain. The trick is in what happens at the moment of the form submission. After the "Submit" button is pressed, two things happen consequently:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The form data is submitted asynchronously and the form is made invisible.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The previously hidden IFRAME appears instead of the form on the top of the other content. This frame displays a confirmation warning and suggests the user to click somewhere inside. Then the user clicks and the confirmation token is sent to the server. The transaction is commited.&lt;/li&gt;&lt;/ol&gt;To prevent the possibility of relaying the frame to an adversary's site, I'd suggest to use a watermark logo on the background of the frame.&lt;br /&gt;Also, I think that confirming the transaction &lt;span style="font-style: italic;"&gt;after&lt;/span&gt; the data is sent must be better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-7687753736053557051?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/7687753736053557051/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=7687753736053557051" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/7687753736053557051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/7687753736053557051?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/jzZmLUPyB6A/other-domain-for-oob-confirmation.html" title="Other domain for the OOB confirmation" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/03/other-domain-for-oob-confirmation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcBRHozeSp7ImA9WxZVE0o.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-753757814141836665</id><published>2008-03-24T08:22:00.000-07:00</published><updated>2008-03-24T08:37:35.481-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-24T08:37:35.481-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="standards" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Meta refresh vs. HTTP Redirect</title><content type="html">There is a well-known advice not to give a direct link to outer resources if there is a chance that URL sessions are used. The session ID would just leak in the Referer header.&lt;br /&gt;The well-known alternative is to use a jump page: you publish a link to yourself (without a session in it), and then redirect the user out. I've suddenly found out (never thought about that before) that when you use the standard HTTP redirection mechanism, the original Referer is retained. I mean, if you're on the page &lt;span style="font-family: courier new;"&gt;http://site1.com/a&lt;/span&gt; and click on the link to &lt;span style="font-family: courier new;"&gt;http://site1.com/b&lt;/span&gt; which then redirects you to &lt;span style="font-family: courier new;"&gt;http://site2.com/&lt;/span&gt;, the Referer which site2 receives is &lt;span style="font-family: courier new;"&gt;http://site1.com/a&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;However, if you use &amp;lt;meta equiv="refresh" content="0;http://site2.com"&amp;gt;, Referer is not sent. Strange, I could not find that anywhere in the web...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-753757814141836665?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/753757814141836665/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=753757814141836665" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/753757814141836665?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/753757814141836665?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/UxFkolkzf4s/meta-refresh-vs-http-redirect.html" title="Meta refresh vs. HTTP Redirect" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/03/meta-refresh-vs-http-redirect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIMQHw9eyp7ImA9WxZVEUQ.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-3704769148418514795</id><published>2008-03-21T00:05:00.000-07:00</published><updated>2008-03-22T06:46:21.263-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-22T06:46:21.263-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="ideas" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>No CSRF in the presence of an XSS</title><content type="html">Jeremiah Grossman published a list of some interesting &lt;a href="http://jeremiahgrossman.blogspot.com/2008/03/unsolved-problems.html"&gt;unsolved websec problems&lt;/a&gt;.&lt;br /&gt;Among them is how to protect a site against CSRF without having to deal with XSS stuff.  That reminds me an interesting &lt;a href="http://shampoo.antville.org/stories/1586524/"&gt;paper by Martin Johns&lt;/a&gt; which considers a JavaScript deferred loading mechanism. The session cookie is stored on the separate domain and thus unavailable for an XSS payload. There were some unsolved issues with that approach discussed by kuzza55 which I don't remember now (&lt;a href="http://sla.ckers.org/forum/read.php?13,7607,7637"&gt;see the discussion&lt;/a&gt;).&lt;br /&gt;&lt;h2&gt;My 5 cents&lt;/h2&gt;This night I got an idea I'll explain now. Night ideas are often silly so this one needs a review. Let's go step by step.&lt;br /&gt;&lt;br /&gt;The first approximation does not consider usability issues; the possible improvements (as well as threats) are discussed later (in an other post).&lt;br /&gt;&lt;br /&gt;Let us have a form on a site which is placed on the domain http://site.com and is vulnerable to XSS. Let's now split form in two parts. The first part is the form itself with an old good token.  The second part is hosted at another domain, say, http://a.site.com. It consists of a button saying "Approve" and a hidden field with an other token (which is coupled with the first on on the server). This approvement form is injected into the first one using IFRAME.&lt;br /&gt;&lt;br /&gt;User enters the data, then clicks "Approve". Token is sent (possibly asynchronously) to the server and the form identified by the coupled token is marked as trusted. Then the user clicks "Submit" and the request is accepted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-3704769148418514795?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/3704769148418514795/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=3704769148418514795" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/3704769148418514795?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/3704769148418514795?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/mTEx1YnNHWQ/no-csrf-in-presence-of-xss.html" title="No CSRF in the presence of an XSS" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/03/no-csrf-in-presence-of-xss.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYFRnw6fyp7ImA9WxZVEEU.&quot;"><id>tag:blogger.com,1999:blog-779912735131283637.post-6902412231333000829</id><published>2008-03-21T00:04:00.000-07:00</published><updated>2008-03-21T00:05:17.217-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-21T00:05:17.217-07:00</app:edited><title>Hello, world!</title><content type="html">Subj.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/779912735131283637-6902412231333000829?l=sandals-on-my-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandals-on-my-head.blogspot.com/feeds/6902412231333000829/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=779912735131283637&amp;postID=6902412231333000829" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/6902412231333000829?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/779912735131283637/posts/default/6902412231333000829?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sandals-on-my-head/~3/1ORhLL1EHz8/hello-world.html" title="Hello, world!" /><author><name>Alexander Berezhnoy</name><uri>http://www.blogger.com/profile/13867899886188396572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sandals-on-my-head.blogspot.com/2008/03/hello-world.html</feedburner:origLink></entry></feed>

