<?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: Lisp HTML sanitizer</title>
	<atom:link href="http://www.3ofcoins.net/2008/10/24/lisp-html-sanitizer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.3ofcoins.net/2008/10/24/lisp-html-sanitizer/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 02 Sep 2010 16:54:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Maciej</title>
		<link>http://www.3ofcoins.net/2008/10/24/lisp-html-sanitizer/comment-page-1/#comment-3</link>
		<dc:creator>Maciej</dc:creator>
		<pubDate>Fri, 14 Nov 2008 13:53:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.3ofcoins.net/?p=38#comment-3</guid>
		<description>Yes, that&#039;s big pain - anyone can post just about anything, and it&#039;s my problem how to handle it.  This time, I have to allow basic formatting, so I have to parse HTML to disallow injections, XSS, and so on; for simpler cases, I usually just use regexps.

If a whitelist is all you need, you have a few ways: you can use simple list of strings, if there are just a few possible values; if there are more values, you can use a hash table.  Sometimes I like to use packages instead of a hash table - you create a new package, that doesn&#039;t use any other (including CL), use INTERN or READ to put symbols in the package, and FIND-SYMBOL to check if symbol exists.  And if there are many possible values, or the check is complicated, I&#039;d use database anyway, so I&#039;d leave consistency checking there.

HTH :)</description>
		<content:encoded><![CDATA[<p>Yes, that&#8217;s big pain &#8211; anyone can post just about anything, and it&#8217;s my problem how to handle it.  This time, I have to allow basic formatting, so I have to parse HTML to disallow injections, XSS, and so on; for simpler cases, I usually just use regexps.</p>
<p>If a whitelist is all you need, you have a few ways: you can use simple list of strings, if there are just a few possible values; if there are more values, you can use a hash table.  Sometimes I like to use packages instead of a hash table &#8211; you create a new package, that doesn&#8217;t use any other (including CL), use INTERN or READ to put symbols in the package, and FIND-SYMBOL to check if symbol exists.  And if there are many possible values, or the check is complicated, I&#8217;d use database anyway, so I&#8217;d leave consistency checking there.</p>
<p>HTH :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan Emrys</title>
		<link>http://www.3ofcoins.net/2008/10/24/lisp-html-sanitizer/comment-page-1/#comment-2</link>
		<dc:creator>Bryan Emrys</dc:creator>
		<pubDate>Thu, 13 Nov 2008 17:47:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.3ofcoins.net/?p=38#comment-2</guid>
		<description>I&#039;ve blocked out most of this weekend to think about how to sanitize any and all inputs into a webapp I&#039;m working on. (My first lisp app). But in my case, I&#039;m not providing text areas to anyone, it is just figuring out the most efficient way to run whitelist checks on everything. I don&#039;t think it is any easier than dealing with a textarea because you can always have some malicious type try to post stuff.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve blocked out most of this weekend to think about how to sanitize any and all inputs into a webapp I&#8217;m working on. (My first lisp app). But in my case, I&#8217;m not providing text areas to anyone, it is just figuring out the most efficient way to run whitelist checks on everything. I don&#8217;t think it is any easier than dealing with a textarea because you can always have some malicious type try to post stuff.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
