<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-328010919691635719.post2776135642223096813..comments</id><updated>2010-07-31T21:50:59.335+02:00</updated><title type='text'>Comments on Eamon Nerbonne: Why XHTML still serves a purpose</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eamon.nerbonne.org/feeds/2776135642223096813/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default'/><link rel='alternate' type='text/html' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html'/><author><name>Eamon Nerbonne</name><uri>http://www.blogger.com/profile/00388124191987595398</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-328010919691635719.post-5295046521275271035</id><published>2006-12-07T09:23:00.000+01:00</published><updated>2006-12-07T09:23:00.000+01:00</updated><title type='text'>Sorry about the posting issue; the posts weren't e...</title><content type='html'>Sorry about the posting issue; the posts weren't eaten and are now online.  In (an apparently vain) attempt to avoid supporting an install of yet another piece of software I hoped blogger would Just Work; since all dynamic content is hosted - and hopefully secured - by blogger/google, security issues should be less of my problem.  However; the ftp-publishing is very delayed (it seems I need to manually intervene or wait for a long long time for it to update the site) which is very confusing if that's not what you're expecting.&lt;br /&gt;&lt;br /&gt;So I posted my reply on &lt;a href="http://www.goer.org/CMS/talk.cgi?entry_id=441"&gt;Evan's blog&lt;/a&gt;.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default/5295046521275271035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default/5295046521275271035'/><link rel='alternate' type='text/html' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html?showComment=1165479780000#c5295046521275271035' title=''/><author><name>Eamon Nerbonne</name><uri>http://www.blogger.com/profile/00388124191987595398</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02630258399520339063'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html' ref='tag:blogger.com,1999:blog-328010919691635719.post-2776135642223096813' source='http://www.blogger.com/feeds/328010919691635719/posts/default/2776135642223096813' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-328010919691635719.post-6479351533065465945</id><published>2006-12-07T01:51:00.000+01:00</published><updated>2006-12-07T01:51:00.000+01:00</updated><title type='text'>Just for clarification. You said: "It's tackling i...</title><content type='html'>Just for clarification. You said: "It's tackling issues such as the semantic web, when much "simpler" issues such as, say, the syntactic web are completely unresolved." &lt;br /&gt;&lt;br /&gt;That is one of the common mistakes, people mixing W3C, the organization, and the individual WGs. HTML WG and Semantic Web WGs are different groups with different people working on different technologies. &lt;br /&gt;&lt;br /&gt;Also, Most active participants of WHATWG are in fact people who are part of W3C (CSS WG and WebAPI WG), so it is not a fight of W3C against the rest of the world. It might be more in fact a fight of engineers against their own company, as ironical it might seem.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default/6479351533065465945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default/6479351533065465945'/><link rel='alternate' type='text/html' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html?showComment=1165452660000#c6479351533065465945' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html' ref='tag:blogger.com,1999:blog-328010919691635719.post-2776135642223096813' source='http://www.blogger.com/feeds/328010919691635719/posts/default/2776135642223096813' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-328010919691635719.post-6879993556548672053</id><published>2006-12-06T17:02:00.000+01:00</published><updated>2006-12-06T17:02:00.000+01:00</updated><title type='text'>Hi Eamon,

First, thanks very much for writing, an...</title><content type='html'>Hi Eamon,&lt;br /&gt;&lt;br /&gt;First, thanks very much for writing, and your thoughts on the matter. &lt;br /&gt;&lt;br /&gt;On the screenscraping issue. First, let's note the interesting fact that you already have to pass the site through Tidy, whether or not the owner of the site claims that the page is "XHTML". That's because you and I both know that over 90% of the time (really! I've measured this), passing that "XHTML" page through an XML parser would blow up our parser. ;) This should be a big red flag about XHTML and any benefits about its purported XML nature right there. &lt;br /&gt;&lt;br /&gt;Second, there are plenty of fine tools for parsing and screenscraping HTML. Python's SGMLParser, for instance, has worked great for my purposes. Anything you can Tidy and scrape as XHTML, I can Tidy and scrape as HTML -- or often, I can just scrape as HTML. &lt;br /&gt;&lt;br /&gt;Third, screenscraping is a bad idea for anything other than the quickest-and-dirtiest kind of software. This is because the owner of the site almost certainly doesn't know or care that they are providing structured data to you. There's no contract here. If they *did* care about this they would provide a real API or at least an RSS/Atom feed.&lt;br /&gt;&lt;br /&gt;On XHTML security. The MySpace XSS vulnerability relies on invalid HTML. Allow me to officially speak with my "Evan Goer" hat on, and not my "Employee of a competitor of MySpace" hat on: MySpace was &lt;em&gt;utterly stupid&lt;/em&gt; to allow that sort of unsanitzed user input to go through. &lt;br /&gt;&lt;br /&gt;You are right that forcing user input to be valid XHTML significantly reduces your attack surface. But &lt;em&gt;so would forcing user input to be valid HTML&lt;/em&gt;. Tidy and its libraries are perfectly capable of cleaning up bad HTML (or rejecting stuff that is too pathological). If you can produce a tool that generates valid XML, you can produce a tool that generates valid HTML too.&lt;br /&gt;&lt;br /&gt;But MORE important: the real lesson, and one that is repeated over and over by security experts at my company and elsewhere, is that you cannot trust user input and you must sanitize the hell out of it. If you do want to allow any sort of structured user input, any sane user input system only allows a small, explicit subset of elements and attributes. Please, I beg you, do not rely on creating valid HTML &lt;em&gt;or&lt;/em&gt; XHTML for sanitization. If you allow arbitrary valid (X)HTML, you will get owned. (Actually, the best thing of all is not to build your own sanitization system, but to take one that has already been well-tested in the wild.)&lt;br /&gt;&lt;br /&gt;Since we're on the subject of parser bugs, here's a nasty remote execution vulnerability from a month ago that affected Drupal, due to a bug in its &lt;em&gt;XML&lt;/em&gt; parser: &lt;br /&gt;&lt;br /&gt;http://www.derkeiler.com/Mailing-Lists/securityfocus/bugtraq/2006-10/msg00320.html&lt;br /&gt;&lt;br /&gt;If you search for "XML parser vulnerability" or "XML parser XSS" or the like, it's easy to find many more such issues...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default/6879993556548672053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/328010919691635719/2776135642223096813/comments/default/6879993556548672053'/><link rel='alternate' type='text/html' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html?showComment=1165420920000#c6879993556548672053' title=''/><author><name>Evan Goer</name><uri>http://www.goer.org/Journal/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://eamon.nerbonne.org/2006/12/why-xhtml-still-serves-purpose.html' ref='tag:blogger.com,1999:blog-328010919691635719.post-2776135642223096813' source='http://www.blogger.com/feeds/328010919691635719/posts/default/2776135642223096813' type='text/html'/></entry></feed>