<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Codigo Manso &#187; cross site scripting</title>
	<atom:link href="http://www.codigomanso.com/es/tag/cross-site-scripting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codigomanso.com</link>
	<description>Programación, informática y tecnología</description>
	<lastBuildDate>Sun, 21 Aug 2011 10:54:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Prevenir ataques XSS con HTML Purifier</title>
		<link>http://www.codigomanso.com/es/2009/03/prevenir-ataques-xss-con-html-purifier/</link>
		<comments>http://www.codigomanso.com/es/2009/03/prevenir-ataques-xss-con-html-purifier/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 22:50:53 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[ataques xss]]></category>
		<category><![CDATA[cross site scripting]]></category>
		<category><![CDATA[filtrar html]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=605</guid>
		<description><![CDATA[
Que son los ataques XSS (cross site scripting) y por qué hay que evitarlos es algo esencial que merece un post a parte.
La idea con la que hay que tienes que quedarte, es que si tienes o planeas realizar una página web donde permites que otros usuarios editen o publiquen contenido HTML (ya sea en [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.htmlpurifier.com/"><img class="size-full wp-image-607 aligncenter" title="HTML Purifier" src="http://www.codigomanso.com/wp-content/uploads/2009/03/html-purifier.png" alt="HTML Purifier" width="497" height="178" /></a></p>
<p style="text-align: justify;">Que son los ataques <a href="http://en.wikipedia.org/wiki/Cross-site_scripting" target="_blank">XSS (cross site scripting)</a> y por qué hay que evitarlos es algo esencial que merece un post a parte.</p>
<p style="text-align: justify;">La idea con la que hay que tienes que quedarte, es que si tienes o planeas realizar una página web donde permites que otros usuarios editen o publiquen contenido HTML (ya sea en forma de páginas, comentarios, etc&#8230;), debes de alguna manera validar que el contenido HTML que están generando es seguro.</p>
<p style="text-align: justify;">Hay muchas librerias que se encargan de filtrar y validar estos contenidos HTML para asegurarse que la gente que sube contenidos no va a hacer nada malo. Yo por mi parte he estado mirando hace un rato, porque tampoco iba a ponerme a hacer la mía (no es mi objetivo en la vida  sacrificar dos semanas de trabajo si puedo usar algo que ya existe y funciona), y me he encontrado con <a href="http://www.htmlpurifier.com/">HTML Purifier</a>, una librería de PHP bastante extensa y con muchisima funcionalidad que se encarga de filtrar codigo maligno.</p>
<p style="text-align: justify;">Utilizarla es muy muy sencillo. Sólo requiere dos lineas (una vez incluido el archivo base).</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'/path/to/htmlpurifier/library/HTMLPurifier.auto.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$purifier</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HTMLPurifier<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$clean_html</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$purifier</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>purify<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirty_html</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify;">Lo bueno de esta libreria, es que se pueden configurar muchisimas cosas, como limitar el número de tags, los atributos por tag, etc&#8230; e incluso es capaz de reformatear código html inválido y convertirlo en código válido (tal y como pueden hacen otras librerias como <a href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> en Python o como <a href="http://tidy.sourceforge.net/">Tidy HTML</a> para C/C++)</p>
<p style="text-align: justify;">También cabe destacar que en principio esta libreria NO REFORMATEA el código HTML, simplemente se encarga de eliminar o reformatear las partes peligrosas o inválidas.</p>
<p style="text-align: justify;">Seguramente en el futuro vuelva a hacer algún otro post sobre el tema, sin embargo, si teneis ocasion, recomiendo echarle un vistazo al libro <strong>Building scalable web sites</strong> de Cal Henderson. Aunque seguramente en la wikipedia y googleando un poco encontrareis bastante información.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2009/03/prevenir-ataques-xss-con-html-purifier/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

