<?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>Comentarios en: Ejercicio de fin de Semana: Evitar SQL Injection con PHP</title>
	<atom:link href="http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/</link>
	<description>Diseño y Programación</description>
	<lastBuildDate>Tue, 07 Feb 2012 11:50:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Por: postnip</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10926</link>
		<dc:creator>postnip</dc:creator>
		<pubDate>Sat, 05 May 2007 23:30:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10926</guid>
		<description>y se puede hacer sql injection en un buscador?? me gustaria saber que vulnerabilidad es comun, y seria bueno mostrarlo para que todos arreglen sus buscadores :D</description>
		<content:encoded><![CDATA[<p>y se puede hacer sql injection en un buscador?? me gustaria saber que vulnerabilidad es comun, y seria bueno mostrarlo para que todos arreglen sus buscadores <img src='http://www.buayacorp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Pablo</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10540</link>
		<dc:creator>Pablo</dc:creator>
		<pubDate>Wed, 04 Apr 2007 01:04:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10540</guid>
		<description>Yo normalmente tengo algunas funciones como:

[php]
function &amp;getPostVar($sVar, $sType, $mDefaultValue = NULL)
{
   if (isset($_POST[$sVar])
   {
      switch($sType)
      {
          case &#039;int&#039;:
             $_POST[$sVar] = (int) $_POST[$sVar];
             break;

          /** y así por cada tipo **/
      }
      return $_POST[$sVar];
   }
   else
   {
      /* No vino nada vía HTTP-POST llamado $sVar */
      /* Devuelvo el valor por defecto */
      return $mDefaultValue;
   }
}
[/php]

Esta función devuelve una referencia al valor de la variable que le estoy indicando en el primer parámetro que ha llegado vía POST. (se puede implementar para GET, COOKIES, etc.)

El uso es bien fácil:

[php]
$iNotId =&amp; getPostVar(&#039;not_id&#039;, &#039;int&#039;, NULL);
[/php]

De esta forma, el valor de $iNotId ya se de entrada que es entero y lo puede utilizar en cualquier lugar estando 100% seguro, sin necesidad de estar aplicando filtros en medio del armado de las instrucciones SQL que entorpecen el código para mi gusto.

Hago que devuelva una referencia al elemento del array $_POST simplemente para ahorrar memoria y no repetir datos inútilmente en el script.</description>
		<content:encoded><![CDATA[<p>Yo normalmente tengo algunas funciones como:</p>
<div class="hiliter"><strong>php:</strong>
<pre class="php">&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> &amp;<span style="color: #808080; font-style: italic;">#038;getPostVar($sVar, $sType, $mDefaultValue = NULL)</span>
<span style="color: #66cc66;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$sVar</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#123;</span>
      <span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$sType</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#123;</span>
          <span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'int'</span>:
             <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$sVar</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#40;</span>int<span style="color: #66cc66;">&#41;</span> <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$sVar</span><span style="color: #66cc66;">&#93;</span>;
             <span style="color: #b1b100;">break</span>;
&nbsp;
          <span style="color: #808080; font-style: italic;">/** y así por cada tipo **/</span>
      <span style="color: #66cc66;">&#125;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$sVar</span><span style="color: #66cc66;">&#93;</span>;
   <span style="color: #66cc66;">&#125;</span>
   <span style="color: #b1b100;">else</span>
   <span style="color: #66cc66;">&#123;</span>
      <span style="color: #808080; font-style: italic;">/* No vino nada vía HTTP-POST llamado $sVar */</span>
      <span style="color: #808080; font-style: italic;">/* Devuelvo el valor por defecto */</span>
      <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$mDefaultValue</span>;
   <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
</div>
<p>Esta función devuelve una referencia al valor de la variable que le estoy indicando en el primer parámetro que ha llegado vía POST. (se puede implementar para GET, COOKIES, etc.)</p>
<p>El uso es bien fácil:</p>
<div class="hiliter"><strong>php:</strong>
<pre class="php">&nbsp;
<span style="color: #0000ff;">$iNotId</span> =&amp;<span style="color: #808080; font-style: italic;">#038; getPostVar('not_id', 'int', NULL);</span>
&nbsp;</pre>
</div>
<p>De esta forma, el valor de $iNotId ya se de entrada que es entero y lo puede utilizar en cualquier lugar estando 100% seguro, sin necesidad de estar aplicando filtros en medio del armado de las instrucciones SQL que entorpecen el código para mi gusto.</p>
<p>Hago que devuelva una referencia al elemento del array $_POST simplemente para ahorrar memoria y no repetir datos inútilmente en el script.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: MaXaC</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10515</link>
		<dc:creator>MaXaC</dc:creator>
		<pubDate>Mon, 02 Apr 2007 18:36:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10515</guid>
		<description>Wow, excelente Alex, tu respuesta fue muy explicativa y rapida, gracias!</description>
		<content:encoded><![CDATA[<p>Wow, excelente Alex, tu respuesta fue muy explicativa y rapida, gracias!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: alex</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10514</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Mon, 02 Apr 2007 17:57:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10514</guid>
		<description>MaXac, el uso de is_numeric o is_integer depende del tipo de datos que se haya definido para ese campo. El primer ejemplo, sin hacer ningún tipo de validación, se podría reducir en algo como:
[php]$SQL = &quot;SELECT * FROM posts WHERE postID = &quot;.(int)$_GET[&#039;id&#039;]; // o float, dependiendo el tipo de dato[/php]

Sobre lo que mencionaba g3org3_x para el segundo ejemplo, me parece que se refería a un &lt;a href=&quot;http://secunia.com/advisories/20365/&quot; rel=&quot;nofollow&quot;&gt;bug de MySQL&lt;/a&gt; que dependiendo de la codificación de la conexión que se realizaba con la BD, era posible &lt;em&gt;sobrepasar&lt;/em&gt; la acción de &lt;code&gt;mysql_real_escape_string&lt;/code&gt;, algo como esto debería funcionar en una versión vulnerable de MySQL:
[php]&lt;?php

$c = mysql_connect(&quot;localhost&quot;, &quot;user&quot;, &quot;pass&quot;);
mysql_select_db(&quot;database&quot;, $c);

// change our character set
mysql_query(&quot;SET CHARACTER SET &#039;gbk&#039;&quot;, $c);

// create demo table
mysql_query(&quot;CREATE TABLE users (
    username VARCHAR(32) PRIMARY KEY,
    password VARCHAR(32)
) CHARACTER SET &#039;GBK&#039;&quot;, $c);
mysql_query(&quot;INSERT INTO users VALUES(&#039;foo&#039;,&#039;bar&#039;), (&#039;baz&#039;,&#039;test&#039;)&quot;, $c);

// now the exploit code
$_POST[&#039;username&#039;] = chr(0xbf) . chr(0x27) . &#039; OR username = username /*&#039;; 
$_POST[&#039;password&#039;] = &#039;anything&#039;; 

// Proper escaping, we should be safe, right?
$user = mysql_real_escape_string($_POST[&#039;username&#039;], $c);
$passwd = mysql_real_escape_string($_POST[&#039;password&#039;], $c);

$sql = &quot;SELECT * FROM  users WHERE  username = &#039;{$user}&#039; AND password = &#039;{$passwd}&#039;&quot;;
$res = mysql_query($sql, $c);
echo mysql_num_rows($res); // will print 2, indicating that we were able to fetch all records

?&gt;[/php]</description>
		<content:encoded><![CDATA[<p>MaXac, el uso de is_numeric o is_integer depende del tipo de datos que se haya definido para ese campo. El primer ejemplo, sin hacer ningún tipo de validación, se podría reducir en algo como:</p>
<div class="hiliter"><strong>php:</strong>
<pre class="php"><span style="color: #0000ff;">$SQL</span> = <span style="color: #ff0000;">&quot;SELECT * FROM posts WHERE postID = &quot;</span>.<span style="color: #66cc66;">&#40;</span>int<span style="color: #66cc66;">&#41;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'id'</span><span style="color: #66cc66;">&#93;</span>; <span style="color: #808080; font-style: italic;">// o float, dependiendo el tipo de dato</span></pre>
</div>
<p>Sobre lo que mencionaba g3org3_x para el segundo ejemplo, me parece que se refería a un <a href="http://secunia.com/advisories/20365/" rel="nofollow">bug de MySQL</a> que dependiendo de la codificación de la conexión que se realizaba con la BD, era posible <em>sobrepasar</em> la acción de <code>mysql_real_escape_string</code>, algo como esto debería funcionar en una versión vulnerable de MySQL:</p>
<div class="hiliter"><strong>php:</strong>
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #0000ff;">$c</span> = <a href="http://www.php.net/mysql_connect"><span style="color: #000066;">mysql_connect</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;localhost&quot;</span>, <span style="color: #ff0000;">&quot;user&quot;</span>, <span style="color: #ff0000;">&quot;pass&quot;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/mysql_select_db"><span style="color: #000066;">mysql_select_db</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;database&quot;</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// change our character set</span>
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;SET CHARACTER SET 'gbk'&quot;</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// create demo table</span>
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;CREATE TABLE users (
    username VARCHAR(32) PRIMARY KEY,
    password VARCHAR(32)
) CHARACTER SET 'GBK'&quot;</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;INSERT INTO users VALUES('foo','bar'), ('baz','test')&quot;</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// now the exploit code</span>
<span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'username'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span>0xbf<span style="color: #66cc66;">&#41;</span> . <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span>0x27<span style="color: #66cc66;">&#41;</span> . <span style="color: #ff0000;">' OR username = username /*'</span>;
<span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'password'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'anything'</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Proper escaping, we should be safe, right?</span>
<span style="color: #0000ff;">$user</span> = <a href="http://www.php.net/mysql_real_escape_string"><span style="color: #000066;">mysql_real_escape_string</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'username'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$passwd</span> = <a href="http://www.php.net/mysql_real_escape_string"><span style="color: #000066;">mysql_real_escape_string</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'password'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #0000ff;">$sql</span> = <span style="color: #ff0000;">&quot;SELECT * FROM  users WHERE  username = '{$user}' AND password = '{$passwd}'&quot;</span>;
<span style="color: #0000ff;">$res</span> = <a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$sql</span>, <span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <a href="http://www.php.net/mysql_num_rows"><span style="color: #000066;">mysql_num_rows</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$res</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// will print 2, indicating that we were able to fetch all records</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>Por: MaXaC</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10513</link>
		<dc:creator>MaXaC</dc:creator>
		<pubDate>Mon, 02 Apr 2007 17:27:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10513</guid>
		<description>Alex una consulta, seria mejor colocar !is_numeric en vez de !is_integer ya que puede ser un valor real y no solamente entero, o bastaria con la primera opcion, y eso de hacerlo en 3 lineas, suena interesante aunque solamente veo que se pueden ahorrar if&#039;s.

Y sobre el segundo ejemplo, es acaso la versiones anteriores a la 5x mas vulnerables que las actuales?</description>
		<content:encoded><![CDATA[<p>Alex una consulta, seria mejor colocar !is_numeric en vez de !is_integer ya que puede ser un valor real y no solamente entero, o bastaria con la primera opcion, y eso de hacerlo en 3 lineas, suena interesante aunque solamente veo que se pueden ahorrar if's.</p>
<p>Y sobre el segundo ejemplo, es acaso la versiones anteriores a la 5x mas vulnerables que las actuales?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: alex</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10501</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Sun, 01 Apr 2007 16:30:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10501</guid>
		<description>Para el primer ejemplo hay un error en la condición donde se comprueba que el parámetro &lt;code&gt;id&lt;/code&gt; sea numérico, debería ser: &lt;code&gt;if (!is_integer(...))&lt;/code&gt; Por esa pequeña equivocación es posible alterar la consulta -y si, estoy de acuerdo en que hay demasiado código innecesario :)

Para el segundo ejemplo, en condiciones &lt;em&gt;normales&lt;/em&gt; no debería ser posible modificar la consulta, aunque como dices depende si la versión de MySQL es vulnerable o no (¿te refieres a los problemas con la codificación no?). Lo de hacer XSS lo dije en plan de &lt;em&gt;fastidioso&lt;/em&gt;, porque en la última línea se escribe el nombre del usuario :P</description>
		<content:encoded><![CDATA[<p>Para el primer ejemplo hay un error en la condición donde se comprueba que el parámetro <code>id</code> sea numérico, debería ser: <code>if (!is_integer(...))</code> Por esa pequeña equivocación es posible alterar la consulta -y si, estoy de acuerdo en que hay demasiado código innecesario <img src='http://www.buayacorp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Para el segundo ejemplo, en condiciones <em>normales</em> no debería ser posible modificar la consulta, aunque como dices depende si la versión de MySQL es vulnerable o no (¿te refieres a los problemas con la codificación no?). Lo de hacer XSS lo dije en plan de <em>fastidioso</em>, porque en la última línea se escribe el nombre del usuario <img src='http://www.buayacorp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: g30rg3_x</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10493</link>
		<dc:creator>g30rg3_x</dc:creator>
		<pubDate>Sun, 01 Apr 2007 04:08:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10493</guid>
		<description>Para el primero no vi errores mas que de que se deperdicia mucho codigo para hacer tan poca cosa, bien se puede hacer en 3 o 4 lineas de codigo eso... (talvez hasta dos).

Para el segundo solo encontre que basarse en mysql_real_escape_string() como sabemos no estan seguro usarla ya que podemos(aunque depende de la version de MySQL ) aun asi podemos pasar el filtro, el problema seria el maximo de 20 largo pero yo creo que si se podra hacer algo con 20 caracteres.

Aunque aun no veo como hacer el XSS que dices en el comentario que dejaste en el articulo original, seria bueno saber tu opinion...

Saludos</description>
		<content:encoded><![CDATA[<p>Para el primero no vi errores mas que de que se deperdicia mucho codigo para hacer tan poca cosa, bien se puede hacer en 3 o 4 lineas de codigo eso... (talvez hasta dos).</p>
<p>Para el segundo solo encontre que basarse en mysql_real_escape_string() como sabemos no estan seguro usarla ya que podemos(aunque depende de la version de MySQL ) aun asi podemos pasar el filtro, el problema seria el maximo de 20 largo pero yo creo que si se podra hacer algo con 20 caracteres.</p>
<p>Aunque aun no veo como hacer el XSS que dices en el comentario que dejaste en el articulo original, seria bueno saber tu opinion...</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: alex</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10483</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Sat, 31 Mar 2007 15:37:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10483</guid>
		<description>A partir de PHP 5 si, pero con esta entrada sólo intentaba mostrar que muchas veces existe código mal hecho :)

Saludos</description>
		<content:encoded><![CDATA[<p>A partir de PHP 5 si, pero con esta entrada sólo intentaba mostrar que muchas veces existe código mal hecho <img src='http://www.buayacorp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Eber Irigoyen</title>
		<link>http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10482</link>
		<dc:creator>Eber Irigoyen</dc:creator>
		<pubDate>Sat, 31 Mar 2007 15:33:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/ejercicio-de-fin-de-semana-evitar-sql-injection-con-php/#comment-10482</guid>
		<description>yo no puedo decir que tengo experiencia con PHP, pero que no se puede usar simplemente un query con parametros?</description>
		<content:encoded><![CDATA[<p>yo no puedo decir que tengo experiencia con PHP, pero que no se puede usar simplemente un query con parametros?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

