<?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>Se ha escrito un Blog &#187; php</title>
	<atom:link href="http://www.davidgarcia.es/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidgarcia.es</link>
	<description></description>
	<lastBuildDate>Mon, 20 Sep 2010 10:51:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Solventar problemática register_globals en servidores comerciales</title>
		<link>http://www.davidgarcia.es/2008/03/09/solventar-problematica-register_globals-en-servidores-comerciales/</link>
		<comments>http://www.davidgarcia.es/2008/03/09/solventar-problematica-register_globals-en-servidores-comerciales/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 21:58:18 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.davidgarcia.es/2008/03/09/solventar-problematica-register_globals-en-servidores-comerciales/</guid>
		<description><![CDATA[Register_globals es una variable de configuración, que existe desde las versiones mas tempranas de php. Controla la disponibilidad de las variables que se envia a un script php mediante metodos POST, GET, o variables procedentes de las COOKIES. Con register_globals activo, cualquier variable enviada, por ejemplo en una url, queda automáticamente declarada en el código [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.php.net/manual/es/ini.core.php#ini.register-globals" target="_blank"><img src="http://www.davidgarcia.es/wp-content/uploads/2008/03/php.gif" alt="PHP" align="left" border="0" /><strong>Register_globals</strong></a> es una variable de configuración, que existe desde las versiones mas tempranas de php. Controla la disponibilidad de las variables que se envia a un script php mediante metodos POST, GET, o variables procedentes de las COOKIES.<br />
<span id="more-145"></span></p>
<p>Con <strong>register_globals</strong> activo, cualquier variable enviada, por ejemplo en una url, queda automáticamente declarada en el código php como si la hubieramos incluido mediante la instrucción <strong>var $variable;</strong></p>
<p>Eg.</p>
<p>http://tld.com/test.php?mivar=hola</p>
<p>equivale a que en test.php se hubiera declarado la variable como:</p>
<p>var $mivar = &#8216;hola&#8217;;</p>
<p>Desde la versión PHP 4.2.0 el valor de <strong>register_globals</strong> está puesto a &#8220;off&#8221; debido a los riesgos de seguridad que implica ya que podemos inyectar variables a un código php sin control.</p>
<p>La manera más sencilla de eliminar la problemática de seguridad de register_globals consiste en poner a &#8220;off&#8221; el valor dentro del fichero php.ini.</p>
<p>En otros casos, cuando no tenemos acceso a la configuración del servidor podemos utilizar el script &#8220;fix_register_globals.php&#8221; que os adjunto.</p>
<p>Esencialmente lo que hace el script es recorrer las estructuras superglobales $_POST, $_GET y $_REQUEST, obteniendo el nombre de las variables para eliminarlas del entorno mediante el uso de la función &#8220;unset&#8221;.</p>
<ol class="codelist">
<li class="tab0 odd"><code>&lt;?php<br />
</code></li>
<li class="tab0 even"><code>//<br />
</code></li>
<li class="tab0 odd"><code>// http<span class="sb">:</span>//es.php.net/manual/es/security.globals.php#76550<br />
</code></li>
<li class="tab0 even"><code>//<br />
</code></li>
<li class="tab0 odd"><code>if (ini_get(register_globals))  // If register_globals is enabled<br />
</code></li>
<li class="tab0 even"><code><span class="sb">{</span> // Unset $_GET keys<br />
</code></li>
<li class="tab2 odd"><code>  foreach ($_GET as $get_key =&gt; $get_value) <span class="sb">{</span><br />
</code></li>
<li class="tab4 even"><code>    if (ereg('^([a-zA-Z]|_)<span class="sb">{</span>1<span class="sb">}</span>([a-zA-Z0-9]|_)*$'<span class="sb">,</span> $get_key)) eval(&quot;unset(\$<span class="sb">{</span>$get_key<span class="sb">}</span>);&quot;);<br />
</code></li>
<li class="tab2 odd"><code>  <span class="sb">}</span> // Unset $_POST keys<br />
</code></li>
<li class="tab2 even"><code>  foreach ($_POST as $post_key =&gt; $post_value) <span class="sb">{</span><br />
</code></li>
<li class="tab4 odd"><code>    if (ereg('^([a-zA-Z]|_)<span class="sb">{</span>1<span class="sb">}</span>([a-zA-Z0-9]|_)*$'<span class="sb">,</span> $post_key)) eval(&quot;unset(\$<span class="sb">{</span>$post_key<span class="sb">}</span>);&quot;);<br />
</code></li>
<li class="even">&nbsp;</li>
<li class="tab2 odd"><code>  <span class="sb">}</span> // Unset $_REQUEST keys<br />
</code></li>
<li class="tab2 even"><code>  foreach ($_REQUEST as $request_key =&gt; $request_value) <span class="sb">{</span><br />
</code></li>
<li class="tab4 odd"><code>    if (ereg('^([a-zA-Z]|_)<span class="sb">{</span>1<span class="sb">}</span>([a-zA-Z0-9]|_)*$'<span class="sb">,</span> $request_key)) eval(&quot;unset(\$<span class="sb">{</span>$request_key<span class="sb">}</span>);&quot;);<br />
</code></li>
<li class="tab2 even"><code>  <span class="sb">}</span><br />
</code></li>
<li class="tab0 odd"><code><span class="sb">}</span><br />
</code></li>
<li class="tab0 even"><code>?&gt;</code></li>
<li class="sourcelink"><strong>Download this code:</strong> <a href="http://www.davidgarcia.es/wp-content/uploads/2008/03/fix_register_globals.txt">fix_register_globals.txt</a></li>
</ol>
<p>Via <a href="http://www.unadecodigo.com/2008/03/09/solventar-problematica-register_globals-en-servidores-comerciales/" title="Una de codigo" target="_blank"><strong>Una de código</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgarcia.es/2008/03/09/solventar-problematica-register_globals-en-servidores-comerciales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

