<?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>Blog Solucionesuno.com &#187; 2009 &#187; septiembre</title>
	<atom:link href="http://www.solucionesuno.com/blog/2009/09/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solucionesuno.com/blog</link>
	<description>Diseño de paginas web, Dieseño web, Diseño gráfico, Diseño de logotipos, Diseño grafico, Diseño editorial</description>
	<lastBuildDate>Fri, 02 Mar 2012 22:19:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>La importancia de escapar variables.</title>
		<link>http://www.solucionesuno.com/blog/programacion-web/la-importancia-de-escapar-variables/</link>
		<comments>http://www.solucionesuno.com/blog/programacion-web/la-importancia-de-escapar-variables/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 15:58:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programación web]]></category>
		<category><![CDATA[escapar variables]]></category>

		<guid isPermaLink="false">http://www.solucionesuno.com/blog/?p=164</guid>
		<description><![CDATA[A menudo en nuestro trabajo de diseño web tenemos la responsabilidad de asegurarnos que no ocurran fallos en nuestros sitios, principalmente en aquellos donde el pasaje de variables de una página hacia otra es habitual. En la mayoría de los casos las variables pueden contener cadenas de caracteres que pueden romper otras cadenas donde son [...]]]></description>
			<content:encoded><![CDATA[<p>A menudo en nuestro trabajo de <a title="diseño web" href="http://www.solucionesuno.com/" target="_self">diseño web</a> tenemos la responsabilidad de asegurarnos que no ocurran fallos en nuestros sitios, principalmente en aquellos donde el pasaje de variables de una página hacia otra es habitual.</p>
<p>En la mayoría de los casos las variables pueden contener cadenas de caracteres que pueden romper otras cadenas donde son introducidas, como ser fragmentos de código SQL, maquetas HTML, campos input o textarea.</p>
<p>Algunos casos más severos que otros, siendo las inyecciones SQL un problema de seguridad en aquellos sitios que no han tomado los recaudos necesarios.</p>
<p>Nuestro lenguaje de <a title="programación web" href="http://www.solucionesuno.com/servicios/programacion-web.php" target="_self">programación web</a> de preferencia es PHP, por lo tanto también tenemos preferencia por el motor MySql. Así que les mostraremos algunos consejos para utilizar en estas plataformas.</p>
<p><strong>¿Qué es escapar?</strong></p>
<p>Escapar un carácter es ante poner una contra barra detrás de él.</p>
<p>$variable = &#8220;Cadena de texto \&#8221;entre comillas\&#8221;.&#8221;;<br />
echo $variable;</p>
<p>Como verán, las comillas que corresponden a la cadena se escapean con el carácter \, permitiendo esto que las comillas puedan ser guardadas dentro de la cadena, evitando que se confundan con el cierre. Esta salida se verá así:</p>
<p>Cadena de texto &#8220;entre comillas&#8221;.</p>
<p>Los caracteres reservados de un lenguaje deben ser escapados para que en su compilación no se abran las cadenas ni se mal interprete el código.</p>
<p>Función mysql_real_escape_string() -&gt; http://ar2.php.net/mysql_real_escape_string</p>
<p>Es seguramente una de las funciones mejor concebidas para concatenar variables dentro de una consulta dirigida a MySql.</p>
<p><strong>- Representaremos un error:</strong><br />
En la url tenemos: http://www.unsitio.es/producto.php?idprod=‘ AND idusuario = ‘34</p>
<p><strong>En php tenemos</strong>:<br />
$idprod = $_GET[‘idprod'];<br />
$SQL = &#8220;SELECT * FROM productos WHERE idprod = ‘$idprod&#8221;</p>
<p><strong>Si compilamos esto quedaría:</strong><br />
SELECT * FROM productos WHERE idprod = ‘‘ AND idusuario = ‘34&#8242;</p>
<p>$idprod puede ser una variable introducida por $_GET mediante la url, es un uso habitual para mostrar detalles de productos en una plantilla php, pero mal utilizada por un navegante puede fácilmente rompe una cadena y devolver errores en pantalla y meticulosamente ir descubriendo la estructura de la Base de Datos.</p>
<p><strong>Si hiciéramos:</strong></p>
<p>$ id_user = mysql_real_escape_string($_GET[‘id_user']);<br />
$SQL = &#8220;SELECT * FROM productos WHERE idprod = ‘$id_user&#8221;</p>
<p><strong>Esto quedaría:</strong><br />
SELECT * FROM productos WHERE idprod = ‘\‘ AND idusuario = \‘34&#8242;</p>
<p>De esta forma logramos que la cadena ingresada sea estrictamente registrada como una cadena de texto, y así la consulta no se romperá. En el peor de los casos, no devolverá resultados.</p>
<p>Ahora bien, esto no es todo. Existen otros errores posibles que puede ocurrir cuando vamos a comparar parámetro por $_GET, que ha sufrido alguna modificación accidental.<br />
<strong>Por ejemplo:</strong></p>
<p>$idprod  = mysql_real_escape_string($_GET[‘idprod']);<br />
SELECT * FROM productos WHERE idprod = ‘$idprod &#8216;;</p>
<p><strong>Será:</strong> SELECT * FROM productos WHERE idprod= ‘54ç&#8217;</p>
<p>Esto no devolverá resultados, y veremos una planilla con la información sobre el producto, prácticamente vacía.<br />
Lo correspondiente a realizar cuando necesitamos recibir un parámetro netamente entero, es parsear el valor, para ello utilizamos (int)</p>
<p>$idprod = (int)($_GET[‘idprod']);<br />
SELECT * FROM productos WHERE idprod  = ‘$idprod&#8217;;</p>
<p><strong>Será:</strong> SELECT * FROM productos WHERE idproducto = ‘54&#8242;</p>
<p>En caso de que $_GET[‘idprod'] sea nulo o alfanumérico sin números en su cadena, el valor parseado será 0. Si tuviera algún número, lo tomará y lo utilizará.<br />
<strong>Ejemplo:</strong></p>
<p>$variable = (int)(&#8220;101dalmatas&#8221;);<br />
echo $variable;</p>
<p>La salida será: 101</p>
<p><strong>Otro aspecto muy importante</strong> es ocultar toda muestra de código que pueda salir por pantalla, o evitar mostrar una página que resulta incompleta.</p>
<p><strong>Ejemplo:</strong></p>
<p>En la url tenemos: http://www.unsitio.es/producto.php?idprod=unacadenadetexto</p>
<p>$idprod = (int)$_GET[‘idprod'];<br />
$SQL = &#8220;SELECT * FROM productos WHERE idprod = $id_prod&#8221;;<br />
(es decir: SELECT * FROM productos WHERE idprod = 0)</p>
<p>Normalmente no existen registros con índice 0, ya que para los lenguajes puede confundirse con un valor nulo. Entonces esta búsqueda no devolverá resultados.</p>
<p>Para lo cual lo correcto es verificar el resultado y evitar que se genere una página sin información:</p>
<p>$idprod = (int)$_GET[‘idprod'];<br />
$SQL = &#8220;SELECT * FROM productos WHERE idprod = $id_prod&#8221;;<br />
$rsd = mysql_query($SQL, $conexion);<br />
$row = mysql_fetch_assoc($rsd);</p>
<p>if (!$row){<br />
header(&#8220;location: error.php&#8221;);<br />
die(&#8220;error al mostrar producto&#8221;);<br />
}</p>
<p>La función header() nos permite redireccionar hacia otra página avisando al usuario sobre el error. Puede ocurrir que la devolución de resultados falle si se están realizando tareas de mantenimiento. O bien que el producto ya no exista.</p>
<p>La idea de re direccionar, es evitar caer en un link muerto. Esto beneficia el <a title="Posicionamiento web" href="http://www.solucionesuno.com/" target="_self">posicionamiento web</a> del site, ya que los motores de búsqueda al no encontrar links muertos califican el site con un Rank más alto. Además de la posibilidad de crear una interface más amigable con el navegante.</p>
<p>La función header() debe ejecutarse previamente el encabezado HTML del site. Esto puede parecer engorroso, pero no da problemas en lo más mínimo cuando el código esta aplicado correctamente.</p>
<p>La función die() funciona para cortar el proceso, en caso de que por algún motivo no funcione header(). Es una buena costumbre su utilización.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solucionesuno.com/blog/programacion-web/la-importancia-de-escapar-variables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fallo de watchdog en plesk.</title>
		<link>http://www.solucionesuno.com/blog/hosting/fallo-de-watchdog-en-plesk/</link>
		<comments>http://www.solucionesuno.com/blog/hosting/fallo-de-watchdog-en-plesk/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 09:01:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Hosting]]></category>

		<guid isPermaLink="false">http://www.solucionesuno.com/blog/?p=155</guid>
		<description><![CDATA[Hemos detectado que las estadisticas de watchdog en panel plesk 8.6.0, son inconsistentes si comparamos las mismas con los comandos "top" y "htpop". Watchdog aumenta el consumo de CPU en 10x comparado con los valores arrojados nativamente por el sistema linux mediante SSH.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/icono-watchdog.jpg"><img class="alignnone size-medium wp-image-158" title="icono-watchdog" src="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/icono-watchdog.jpg" alt="" width="68" height="66" /></a></p>
<p>Al desear obtener estadisticas de los consumos de los procesos de un Servidor dedicado, para preveer la necesidades de futuro de la ampliacion del servidor, nos hemos encontrado con una gran cuestion:</p>
<p>Luego de realizar una intensa investigacion sobre el consumo de rendimiento monitorizando los recursos del servidor, a travez de las graficas de <strong>Watchdog </strong>en el panel <strong>Plesk,</strong> hemos detectado que los mismos difieren muchisimo a los valores arrojados directamente por consola SSH con los comandos <em>&#8220;top&#8221;</em> y <em>&#8220;htpop¨<span id="more-155"></span></em></p>
<p>Haciendo comparativas cno los valores arrojados por Watchdog y los valores obtenidos por consola, si graficamos dichos valores de consola, el mismo periodo y los comparamos hemos observado que en realidad el consumo real de los recursos del el servidor es de 1/10 de los valores mostrados en <strong>wachdog.</strong></p>
<p>Es decir, si el panel watchdog muestra que el servidor se encuentra a un 100% de su carga, las estadisticas de consola nos indican que la carga es del 10%.</p>
<p>Estas pruebas han sido realizadas sobre un servidor dedicado que t<span style="color: black;">iene dos </span><em><span lang="ES-AR">Intel(R) Xeon(R) CPU E5310  @ 1.60GHz, 4MB cache</span></em><span style="color: black;">. Lo que da un total de 8 núcleos.</span></p>
<p>La herramienta que actualmetne ahora estamos utilizando para monitorizar el consumo de los recursos del servidor es <span style="color: black;">Sysstat, </span><span style="color: black;"><a href="http://pagesperso-orange.fr/sebastien.godard/"><span lang="EN-US">http://pagesperso-orange.fr/sebastien.godard/.</span></a></span></p>
<p>Si alguien se guia por los valores de <strong>watchdog</strong>, agrademeriamos vuestros comentarios sobre si esta incidencia tambien se les ha producido, para descartar que pueda deverse a alguna version del plesk en concreto. Nuestra version de plesk actual es <span style="font-size: 10pt; font-family: &quot;Verdana&quot;,&quot;sans-serif&quot;;">Plesk, 8.6.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.solucionesuno.com/blog/hosting/fallo-de-watchdog-en-plesk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nueva web: Maratón de Carnaval</title>
		<link>http://www.solucionesuno.com/blog/trabajos/nueva-web-maraton-de-carnaval/</link>
		<comments>http://www.solucionesuno.com/blog/trabajos/nueva-web-maraton-de-carnaval/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 16:40:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Trabajos]]></category>

		<guid isPermaLink="false">http://www.solucionesuno.com/blog/?p=144</guid>
		<description><![CDATA[Los organizadores de Maratón de Carnaval, evento el cual se convertirá en el mayor y más multitudinario evento carnavalesco de la historia, han confiado en nuestros servicios para el diseño de su web promocional. Hemos realizado la pagina web de la primera maratón de carnaval de la historia: http://www.maratondecarnaval.es Además hemos diseñado la imagen corporativa [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Los organizadores de Maratón de Carnaval, evento el cual se convertirá en el mayor y más multitudinario evento carnavalesco de la historia, han confiado en nuestros servicios para el diseño de su web promocional.</strong></p>
<p><!--[if gte mso 9]><xml> Normal   0         21         false   false   false      ES-AR   X-NONE   X-NONE </xml>< ![endif]--><!--[if gte mso 9]><xml> </xml>< ![endif]--><!--  --><!--[if gte mso 10]> <mce:style>< !   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p>Hemos realizado la pagina web de la primera maratón de carnaval de la historia: <a href="http://www.maratondecarnaval.es/"><strong>http://www.maratondecarnaval.es</strong></a></p>
<p><!--[if gte mso 9]><xml> Normal   0         21         false   false   false      ES-AR   X-NONE   X-NONE </xml>< ![endif]--><!--[if gte mso 9]><xml> </xml>< ![endif]--><!--  --><!--[if gte mso 10]> </mce:style><mce:style>< !   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p>Además hemos diseñado la imagen corporativa del evento, tomando como concepto principal la alegría y el color de los carnavales:</p>
<p style="text-align: center;"><a href="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/maraton_de_carnaval1.jpg"><img class="size-medium wp-image-151 aligncenter" title="Maratón de carnaval" src="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/maraton_de_carnaval1-300x187.jpg" alt="Maratón de carnaval" width="300" height="187" /></a></p>
<p><!--[if gte mso 9]><xml> Normal   0         21         false   false   false      ES-AR   X-NONE   X-NONE </xml>< ![endif]--><!--[if gte mso 9]><xml> </xml>< ![endif]--><!--  --><!--[if gte mso 10]> </mce:style><mce:style>< !   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p><span id="more-144"></span>El evento se realizará el domingo 4 de octubre a las 12 hs (mediodía), allí actuarán por primera vez juntas en un mismo espectáculo, las 7 mejores chirigotas del carnaval de Cádiz 2009.</p>
<p>La web ha sido realizada con tecnología flash y con contenidos autoadministrables:</p>
<p style="text-align: center;"><a href="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/maraton_de_carnaval_bienvenidos.jpg"><img class="size-medium wp-image-146 aligncenter" title="Bienvenidos a Maratón de carnaval" src="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/maraton_de_carnaval_bienvenidos-300x204.jpg" alt="Bienvenidos a Maratón de carnaval" width="300" height="204" /></a></p>
<p><!--[if gte mso 9]><xml> Normal   0         21         false   false   false      ES-AR   X-NONE   X-NONE </xml>< ![endif]--><!--[if gte mso 9]><xml> </xml>< ![endif]--><!--  --><!--[if gte mso 10]> </mce:style><mce:style>< !   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p>En el apartado &#8220;Agrupaciones&#8221; el usuario administrador del sitio web, gracias al <a href="http://www.solucionesuno.com/servicios/gestores-de-contenidos.php" target="_blank">gestor de contenidos</a> autoadministrables, puede ingresar galerías de fotografías y videos, de una manera rápida y sencilla, logrando una autonomia total sobre los contenidos de la web.</p>
<p style="text-align: center;"><a href="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/detalle_de_agrupacion.jpg"><img class="size-medium wp-image-147 aligncenter" title="Detalle de agrupación" src="http://www.solucionesuno.com/blog/wp-content/uploads/2009/09/detalle_de_agrupacion-251x300.jpg" alt="Detalle de agrupación" width="251" height="300" /></a></p>
<p><!--[if gte mso 9]><xml> Normal   0         21         false   false   false      ES-AR   X-NONE   X-NONE </xml>< ![endif]--><!--[if gte mso 9]><xml> </xml>< ![endif]--><!--  --><!--[if gte mso 10]> </mce:style><mce:style>< !   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabla normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p>Puedes visitar la web haciendo <a href="http://www.maratondecarnaval.es/index.php"><strong>click aquí</strong></a></p>
<p>Nuevamente un cliente ha confiado en nuestros servicios para el desarrollo de su proyecto web, un nuevo proyecto que demuestra la calidad y responsabilidad con la que trabajamos.</p>
<p><strong>Testimonio de el cliente:</strong></p>
<p style="text-align: center;"><em>&#8220;Muchas gracias por la profesionalidad mostrada. En esta línea y a pesar de la situación del mercado, os ha de ir muy bien.&#8221; <strong>Daniel Rodríguez Aragón</strong></em><em></em></p>
<p><strong>SolucionesUNO &#8211; Un cliente satisfecho, un nuevo proyecto exitoso!</strong></mce:style></p>
]]></content:encoded>
			<wfw:commentRss>http://www.solucionesuno.com/blog/trabajos/nueva-web-maraton-de-carnaval/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>


