<?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>Linux Blog &#187; Linux</title>
	<atom:link href="http://www.rz0r.net/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rz0r.net</link>
	<description>Otro blog mas de linux</description>
	<lastBuildDate>Tue, 23 Aug 2011 05:26:32 +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>Consumir web services SOAP facil con Python Suds</title>
		<link>http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/</link>
		<comments>http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 05:26:32 +0000</pubDate>
		<dc:creator>rz0r</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.rz0r.net/?p=186</guid>
		<description><![CDATA[Suds es un tremendo cliente SOAP para consumir web services es basado en Python a diferencia de los clientes en Java no hay generación de clases, y el API es tipo orientado a objetos. Y lo mejor es el poco código que se debe escribir para consumir un servicio web y para muestra un ejemplo [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=90e8a2b5c540d915d4179fab9eeaf31d&amp;default=http://en.gravatar.com/avatar/90e8a2b5c540d915d4179fab9eeaf31d?s=80&r=any' alt='No Gravatar' width=40 height=40/><p>Suds es un tremendo cliente SOAP para consumir web services es basado en Python a diferencia de los clientes en Java no hay generación de clases, y el API es tipo orientado a objetos. Y lo mejor es el poco código que se debe escribir para consumir un servicio web y para muestra un ejemplo sencillo:</p>
<p>Lo primero instalar el cliente ya sea descargándolo del sitio o instalando el paquetes si nuestra distribución de linux lo incluye en sus repositorios.</p>
<pre class="brush: bash; title: ; notranslate">
# fedora 15
yum -y install python-suds
# tarball
wget https://fedorahosted.org/releases/s/u/suds/python-suds-0.4.tar.gz
tar xzvf python-suds-0.4.tar.gz
cd python-suds-0.4
python setup.py install
</pre>
<p>Para el ejemplo utilizaremos uno de los webservices del sitio webservicesx.net</p>
<pre class="brush: python; title: ; notranslate">
#!/usr/bin/env python

from suds.client import Client
url = 'http://www.webservicex.net/globalweather.asmx?WSDL'
client = Client(url)
print client
</pre>
<p>si todo esta correcto la salida del script mostrara esto:</p>
<p>web service output</p>
<pre class="brush: plain; title: ; notranslate">
Suds ( https://fedorahosted.org/suds/ )  version: 0.3.9 GA  build: R659-20100219

Service ( GlobalWeather ) tns=&quot;http://www.webserviceX.NET&quot;
   Prefixes (0)
   Ports (2):
      (GlobalWeatherSoap)
         Methods (2):
            GetCitiesByCountry(xs:string CountryName, )
            GetWeather(xs:string CityName, xs:string CountryName, )
         Types (0):
      (GlobalWeatherSoap12)
         Methods (2):
            GetCitiesByCountry(xs:string CountryName, )
            GetWeather(xs:string CityName, xs:string CountryName, )
         Types (0):
</pre>
<p>El servicio web tiene 2 metodos los cuales podemos invocar de la siguiente manera:</p>
<pre class="brush: python; title: ; notranslate">
#!/usr/bin/env python

from suds.client import Client
url = 'http://www.webservicex.net/globalweather.asmx?WSDL'
client = Client(url)
#print client
weather =  client.service.GetWeather('Managua', 'Nicaragua')
print weather
</pre>
<p>esto generara un string conteniendo el xml para que luego pueda ser procesado según se requiera .</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;CurrentWeather&gt;
  &lt;Location&gt;Managua A. C. Sandino, Nicaragua (MNMG) 12-09N 086-10W 56M&lt;/Location&gt;
  &lt;Time&gt;Jul 18, 2011 - 12:00 AM EDT / 2011.07.18 0400 UTC&lt;/Time&gt;
  &lt;Wind&gt; from the ESE (110 degrees) at 5 MPH (4 KT):0&lt;/Wind&gt;
  &lt;Visibility&gt; greater than 7 mile(s):0&lt;/Visibility&gt;
  &lt;SkyConditions&gt; partly cloudy&lt;/SkyConditions&gt;
  &lt;Temperature&gt; 77 F (25 C)&lt;/Temperature&gt;
  &lt;DewPoint&gt; 73 F (23 C)&lt;/DewPoint&gt;
  &lt;RelativeHumidity&gt; 88%&lt;/RelativeHumidity&gt;
  &lt;Pressure&gt; 29.88 in. Hg (1011 hPa)&lt;/Pressure&gt;
  &lt;Status&gt;Success&lt;/Status&gt;
&lt;/CurrentWeather&gt;
</pre>
<p>Referencias:</p>
<p>Python Suds</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.rz0r.net%2F2011%2F07%2Fconsumir-web-services-soap-facil-con-python-suds%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/"  data-text="Consumir web services SOAP facil con Python Suds" data-count="horizontal" data-via="rz0r">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.rz0r.net/2011/07/consumir-web-services-soap-facil-con-python-suds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android SDK en Fedora 14 x86-64</title>
		<link>http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/</link>
		<comments>http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 05:43:20 +0000</pubDate>
		<dc:creator>rz0r</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[planeta]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[emulator]]></category>
		<category><![CDATA[fedora 64 bits]]></category>

		<guid isPermaLink="false">http://www.rz0r.net/?p=160</guid>
		<description><![CDATA[El SDK de Android esta hecho para 32bits para ponerlo a funcionar en Fedora 14 x86-64(64 bits) y correr el emulador usando el JDK de 64 bits requiere instalar librerias de 32 bits; accediendo como usuario root instalamos lo siguiente: Descargamos el SDK del sitio de Android http://developer.android.com/sdk/index.html Linux (i386) &#124;  android-sdk_r10-linux_x86.tgz &#124;  26981997 bytes [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=90e8a2b5c540d915d4179fab9eeaf31d&amp;default=http://en.gravatar.com/avatar/90e8a2b5c540d915d4179fab9eeaf31d?s=80&r=any' alt='No Gravatar' width=40 height=40/><p>El SDK de Android esta hecho para 32bits para ponerlo a funcionar en Fedora 14 x86-64(64 bits) y correr el emulador usando el JDK de 64 bits requiere instalar librerias de 32 bits; accediendo como usuario root instalamos lo siguiente:</p>
<pre class="brush: bash; title: ; notranslate">
su -
yum install ncurses-libs.i686 libstdc++.i686 glibc.i686 libX11-devel.i686  \
glibc.i686 SDL.i686 libX11.i686 libXext.i686 libao.i686  alsa-lib.i686 -y
</pre>
<p>Descargamos el SDK del sitio de Android http://developer.android.com/sdk/index.html</p>
<p>Linux (i386) |  android-sdk_r10-linux_x86.tgz |  26981997 bytes |  c022dda3a56c8a67698e6a39b0b1a4e0</p>
<p>descomprimimos el archivos, desde la terminal ejecutamos</p>
<pre class="brush: bash; title: ; notranslate">
cd android-sdk-linux_x86/tools
./android
</pre>
<p>descargamos el SDK con la version del API que vayamos a utilizar y listo solo queda configurar el dispositivo y probarlo.</p>
<p>El dispositivo puede crearse desde la consola o desde la aplicacion grafica.</p>
<pre class="brush: bash; title: ; notranslate">
# creando el dispositivo desde la consola
cd android-sdk-linux_x86/tools
./android  create avd -c 256M -t 1 -n android_223 -a -s WQVGA400 --force
</pre>
<p>al igual el emulador se puede arrancar desde la consola o la aplicacion.</p>
<pre class="brush: bash; title: ; notranslate">
# ejecutando el emulador
cd android-sdk-linux_x86/tools
./emulator -cpu-delay 0 -no-boot-anim -cache ./cache  -verbose -avd android_223
</pre>
<p>las opciones -cpu-delay 0 -no-boot-anim -cache ./cache, mejora un poco el rendimiento haciendo mas responsivo el emulador.</p>
<div id="attachment_166" class="wp-caption alignnone" style="width: 310px"><a href="http://www.rz0r.net/wp-content/uploads/2011/03/Screenshot.png"><img class="size-medium wp-image-166 " title="android on fedora 14 x86-64" src="http://www.rz0r.net/wp-content/uploads/2011/03/Screenshot-300x187.png" alt="android on fedora 14 x86-64" width="300" height="187" /></a><p class="wp-caption-text">android on fedora 14 x86-64</p></div>
<p>referencia:</p>
<p><a href="http://developer.android.com/index.html">Android Developers</a></p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.rz0r.net%2F2011%2F03%2Fandroid-sdk-en-fedora-14-x86-64%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/"  data-text="Android SDK en Fedora 14 x86-64" data-count="horizontal" data-via="rz0r">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.rz0r.net/2011/03/android-sdk-en-fedora-14-x86-64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detección y redirección de móviles con Apache mod_rewrite.</title>
		<link>http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/</link>
		<comments>http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 04:51:56 +0000</pubDate>
		<dc:creator>rz0r</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[mobiles]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.rz0r.net/?p=148</guid>
		<description><![CDATA[Cuando se desarrollan aplicaciones web o versiones móviles de sitios una aspecto fundamental es la detección del móvil y sus capacidades existen 2 opciones para realizar esta tarea ambas utilizan base de datos formatos XML con las características de los móviles una es opensource WURFL y la otra es Device Atlas la cual funciona en [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=90e8a2b5c540d915d4179fab9eeaf31d&amp;default=http://en.gravatar.com/avatar/90e8a2b5c540d915d4179fab9eeaf31d?s=80&r=any' alt='No Gravatar' width=40 height=40/><p>Cuando se desarrollan aplicaciones web o versiones móviles de sitios una aspecto fundamental es la detección del móvil y sus capacidades existen 2 opciones para realizar esta tarea ambas utilizan base de datos formatos XML con las características de los móviles una es opensource   <a href="http://wurfl.sourceforge.net/">WURFL</a>  y la otra es  <a href="http://deviceatlas.com/licences">Device Atlas</a> la cual funciona en base a licencias, gratuita para evaluación con la data de ambas es posible implementar la detección del móvil y sus capacidades. </p>
<p>Ahora bien como dice el titulo de este articulo detección y redirección con Apache mod_rewrite , si no se requiere una solucion compleja lo mas sencillo y rápido si se esta trabajando con Apache es usar su modulo de re-escritura de url ( mod-rewrite )  y eso es mediante unas cuantas reglas en un archivo .htaccess en el directorio como estas:</p>
<pre class="brush: plain; title: ; notranslate">

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} ^(Android|BlackBerry) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(Motorolla|Nokia|Samsung|SonyEricsson) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iP(hone|od) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*Mobile.*Safari

RewriteRule ^$ http://movil.midominio.com  [R=301,L]
</pre>
<p>La deteccion es proporcionada por las expresiones regulares evaluadas de la variable &#8220;HTTP_USER_AGENT&#8221;  y la redireccion por la expresion  &#8220;RewriteRule ^$ http://movil.midominio.com  [R=301,L]&#8221;  en este caso por ejemplo tenemos  un sitio en &#8220;midominio.com&#8221; y una version movil en  &#8220;movil.midominio.com&#8221;  el htaccess redireccionara cada peticion que sea movil al subdominio automaticamente.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.rz0r.net%2F2010%2F07%2Fdeteccion-y-redireccion-de-moviles-con-apache-mod_rewrite%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/"  data-text="Detección y redirección de móviles con Apache mod_rewrite." data-count="horizontal" data-via="rz0r">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.rz0r.net/2010/07/deteccion-y-redireccion-de-moviles-con-apache-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando sun web server 7 con el PHP de Linux</title>
		<link>http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/</link>
		<comments>http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 00:32:53 +0000</pubDate>
		<dc:creator>rz0r</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[sun web server]]></category>

		<guid isPermaLink="false">http://www.rz0r.net/?p=98</guid>
		<description><![CDATA[En un post anterior habia mostrado como instalar el Sun Web Server 7  en Fedora8 utilizando el agregado PHP provisto por Sun,  el agregado esta bien si solo deseas utilizar las funciones mas comunes o basicas del PHP5, por lo general el PHP incluido en las distribuciones de linux viene con mas extensiones que le [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=90e8a2b5c540d915d4179fab9eeaf31d&amp;default=http://en.gravatar.com/avatar/90e8a2b5c540d915d4179fab9eeaf31d?s=80&r=any' alt='No Gravatar' width=40 height=40/><p>En un <a href="http://www.rz0r.net/2008/03/sun-java-system-web-server-70-php5-en-fedora8/" target="_blank">post anterior</a> habia mostrado como instalar el Sun Web Server 7  en Fedora8 utilizando el agregado PHP provisto por Sun,  el agregado esta bien si solo deseas utilizar las funciones mas comunes o basicas del PHP5, por lo general el PHP incluido en las distribuciones de linux viene con mas extensiones que le brinda caracteristicas adicionales al lenguaje.</p>
<p>Ahora bien para usar el PHP5 que viene con la distribuccion de Linux solo necesitamos hacer un par de ajustes al archivo obj.conf .</p>
<pre class="brush: plain; title: ; notranslate">
Service type=&quot;magnus-internal/php&quot;
fn=&quot;responder-fastcgi&quot;
bind-path=&quot;localhost:3101&quot;
app-path=&quot;/usr/bin/php-cgi&quot;
app-env=&quot;PHP_FCGI_CHILDREN=2&quot;
app-env=&quot;PHP_FCGI_MAX_REQUEST=200&quot;
app-env=&quot;FCGI_WEB_SERVER_ADDRS=127.0.0.1&quot;
app-env=&quot;LD_LIBRARY_PATH=/usr/lib/php&quot;
</pre>
<p>agregamos la ruta hacia el cgi de php en el &#8220;app-path&#8221;, y la ruta donde estan las extensiones por lo general es &#8220;/usr/lib/php&#8221; en &#8220;app-env&#8221;</p>
<p>luego en la consola de administracion hacemos un pull &amp; deploy de la configuracion y listo tendremos PHP5 que viene con la distro y todas las extensiones trabajando con nuestro Sun Web Server 7.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.rz0r.net%2F2009%2F04%2Fconfigurando-sun-web-server-7-con-el-php-de-linux%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/"  data-text="Configurando sun web server 7 con el PHP de Linux" data-count="horizontal" data-via="rz0r">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.rz0r.net/2009/04/configurando-sun-web-server-7-con-el-php-de-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP, tokens y Forms</title>
		<link>http://www.rz0r.net/2008/09/php-tokens-y-forms/</link>
		<comments>http://www.rz0r.net/2008/09/php-tokens-y-forms/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 22:23:29 +0000</pubDate>
		<dc:creator>rz0r</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.rz0r.net/?p=45</guid>
		<description><![CDATA[Por lo general es una buena practica garantizar la integridad de los datos que se envia desde un formulario a un script en la web, para ello se pueden utilizar varias tecnicas como: solo buscar por datos esperados en los campos del formulario, usar un codigo captcha y en mi opinion una de las mejores [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=90e8a2b5c540d915d4179fab9eeaf31d&amp;default=http://en.gravatar.com/avatar/90e8a2b5c540d915d4179fab9eeaf31d?s=80&r=any' alt='No Gravatar' width=40 height=40/><p>Por lo general es una buena practica garantizar la integridad de los datos que se envia desde un formulario a un script en la web, para ello se pueden utilizar varias tecnicas como: solo buscar por datos esperados en los campos del formulario, usar un codigo captcha y en mi opinion una de las mejores tecnicas utilizar un token para validar la integridad de los datos.</p>
<p>para demostracion un pequeño codigo de ejemplo:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
// codigo en el encabezado del form
$randomkey = &quot;suP3rR4nDKeY&quot;;
$fixedkey = &quot;123lsdlas345&quot;
$salt = time(); // correspondera a un id que se enviara en un campo oculto
// token debera ir en un campo oculto del formulario.
$token = sha1($randomkey . $fixedkey . $salt);
?&gt;
&lt;input id=&quot;id&quot; name=&quot;id&quot; type=&quot;hidden&quot; value=&quot;&lt;?php echo $salt; ?&gt;&quot; /&gt;
&lt;input id=&quot;token&quot; name=&quot;token&quot; type=&quot;hidden&quot; value=&quot;&lt;?php echo $token; ?&gt;&quot; /&gt;
</pre>
<p>Una vez generado el token este sera validado por el script que recibira la informacion del formulario verificado el token garantizara que los datos son validos y han sido enviados desde nuestro formulario.</p>
<p>Una vez validadas las entradas y teniendo los datos del id y el token se regenera el token para comprobarlo usando las 2 key que se usaron el formulario</p>
<pre class="brush: php; title: ; notranslate">
// $id_form es el id obtenido del formulario
// $form_token es el token del formulario
$randomkey = &quot;suP3rR4nDKeY&quot;;
$fixedkey = &quot;123lsdlas345&quot;
$check_token = sha1($randomkey . $fixedkey . $id_form);
if ($form_token == $check_token ) {
print &quot;form data esta OK&quot;;
} else {
die(&quot;Token invalido&quot;);
}
</pre>
<p>asi con el uso del token se garantiza la integridad de los datos y su procedencia, si alguien quisiera atacar el form tendria que conocer las llaves y el timestamp que se genera al cargar el form, adicionalmente siempre es recomendable realizar una doble validacion una utilizando javascript y en caso de ser deshabilitado, contar con una validacion php o en el lenguaje que se utilice para procesar el formulario.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.rz0r.net%2F2008%2F09%2Fphp-tokens-y-forms%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.rz0r.net/2008/09/php-tokens-y-forms/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.rz0r.net/2008/09/php-tokens-y-forms/"  data-text="PHP, tokens y Forms" data-count="horizontal" data-via="rz0r">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.rz0r.net/2008/09/php-tokens-y-forms/" data-counter="right"></script></div>			
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script src="http://www.stumbleupon.com/hostedbadge.php?s=1&amp;r=http://www.rz0r.net/2008/09/php-tokens-y-forms/"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.rz0r.net/2008/09/php-tokens-y-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

