<?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>Delanover</title>
	<atom:link href="http://delanover.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://delanover.com</link>
	<description>Blog sobre Informática y Seguridad</description>
	<lastBuildDate>Sat, 04 Feb 2012 11:52:35 +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>Twitter Stalker. Script para obtener datos de una cuenta de Twitter</title>
		<link>http://delanover.com/2012/02/04/twitter-stalker-script-para-obtener-datos-de-una-cuenta-de-twitter/</link>
		<comments>http://delanover.com/2012/02/04/twitter-stalker-script-para-obtener-datos-de-una-cuenta-de-twitter/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 11:52:35 +0000</pubDate>
		<dc:creator>lipman</dc:creator>
				<category><![CDATA[Información]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://delanover.com/?p=1394</guid>
		<description><![CDATA[Mitad por entretenimiento y mitad por motivos personales, me vi desarrollando una aplicación en Bash que me permitiera obtener los datos de una cuenta de Twitter, a partir del nombre de usuario del que quisiera obtener dichos datos. Hace algunos dias la terminé, y ayer la traducí a PHP, puesta hoy pública (aunque todavia no [...]]]></description>
			<content:encoded><![CDATA[<p>Mitad por entretenimiento y mitad por motivos personales, me vi desarrollando una aplicación en Bash que me permitiera obtener los datos de una cuenta de Twitter, a partir del nombre de usuario del que quisiera obtener dichos datos.</p>
<p>Hace algunos dias la terminé, y ayer la traducí a PHP, puesta hoy pública (aunque todavia no el código) para detectar posibles fallos y ser reportado de algún tipo de bug o comentario, es por eso por lo que animo a que cualquiera que tenga un rato la pruebe: <a href="http://delanover.com/twitter" target="_blank">http://delanover.com/twitter</a>.</p>
<p>Quisiera relatar un poco la experiencia que tuve en este post. Como dije, al principio la escribí en Bash. Viene muy bien saber comandos de linux para esto, y en el proceso de creación del script descubrí algunas cosas interesantes de Bash.</p>
<p><b>El comando <u>paste</u></b>, nos permite juntar dos ficheros desde la consola. Pero no de la misma forma que hariamos con <code>cat archivo1 archivo2</code>. De esta última forma, concatenariamos archivos. Entenderemos este comando mejor con un ejemplo:<br />
<i>Archivo 1</i><br />
Hola<br />
Adios<br />
<i>Archivo 2</i><br />
Mundo<br />
Mundo</p>
<p>Realizamos: <code>paste archivo1 archivo2 > final</code> y obtenemos un fichero <i>final</i> cuyo contenido es:<br />
Hola Mundo<br />
Adios Mundo<br />
(Palabras separadas por un tabulador)</p>
<p>Parece que no, pero puede ser útil este comando, y con lo sencillo que es, me parecia raro no haber oido hablar de él.</p>
<p>También tuve que lidiar con <b>la búsqueda de expresiones regulares de forma un-greedy (o non-greedy)</b>. ¿Qué es esto? Lo veremos también claro con un ejemplo. Imaginemos que tenemos la siguiente string: <i>inicio intermedio fin basura basura fin</i> y queremos obtener lo que hay entre inicio y fin (el primer fin, no el último). Usando expresiones regulares, podriamos pensar en algo así:</p>
<p><code>grep 'inicio.*fin' -o archivoCualquiera</code> (el -o es para que nos muestre todo lo que abarca esa expresión regular. Es decir, que nosotros queremos: &#8220;<b>inicio intermedio fin</b><s> basura basura fin</s>&#8220;, pero en lugar de eso, nos devuelve &#8220;<b>inicio intermedio fin basura basura fin</b>&#8220;. ¿Pero por qué? Porque primero busca &#8220;inicio&#8221;, después busca todos los carácteres posibles (todos los que simbolizan el punto) y cuando ya los tiene todos, se pone a buscar hacia atrás (de izquierda a derecha) &#8220;fin&#8221;. En otras palabras se podría interpretar con que empieza a buscar &#8220;inicio&#8221; por la izquierda y &#8220;fin&#8221; por la derecha, y muestra todo lo que hay de por medio.</p>
<p>El caso es que yo no quería esto. Yo quería que empezase a buscar por la derecha, y siguiese buscando desde ese momento hacia la derecha. De esta forma obtendríamos el &#8220;<b>inicio intermedio fin</b><s> basura basura fin</s>&#8220;. Pues bien, este método de buscar se llama non-greedy o un-greedy, y <b>nativamente, bash no lo permite</b> y digo nativamente, porque <i>grep</i> tiene un parámetro que nos permite usar expresiones regulares de Perl y este sí que permite hacer lo que buscamos.</p>
<p>Solución final: <code>grep -P 'inicio.*?fin' -o archivoCualquiera</code></p>
<p>Simplemente añadiendo un símbolo de interrogración tras el asterisco.</p>
<p>Volviendo al tema del script, mencionar que he usado la API de twitter que podeis encontrar aquí: https://dev.twitter.com/docs/api<br />
Un apunte: Twitter permite como máximo <b>150 peticiones por hora por IP</b>. Parecen suficientes o incluso muchas, pero innumerables veces me ha saltado el error de que he excedido el límite.</p>
<p>Por otra parte, al re-programarlo en PHP y al tratarse de que las respuestas vienen dadas en formato JSON, éste tiene una función que ayuda mucho: <b>json_decode</b>. El resultado no se trata como una matriz cualquiera, así que hablaré un poco. Por un lado, miraremos la estructura de <a href="https://dev.twitter.com/docs/api/1/get/statuses/home_timeline" target="_blank">esto</a>. Para acceder a las propiedades del primer nivel sería tan fácil como:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0088ff;">$objeto</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">json_decode</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$cadena_json</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
<span style="color: #006600;">echo</span> <span style="color: #0088ff;">$objeto</span><span style="color: #0000ff;">-&gt;</span><span style="color: #000000;">&#123;</span><span style="color: #0000ff;">'created_at'</span><span style="color: #000000;">&#125;</span><span style="color: #0000ff;">;</span> <span style="color: #FF9900; font-style: italic;">//Ejemplo de acceso a un primer nivel</span>
<span style="color: #006600;">echo</span> <span style="color: #0088ff;">$objeto</span><span style="color: #0000ff;">-&gt;</span><span style="color: #000000;">&#123;</span><span style="color: #0000ff;">'user'</span><span style="color: #000000;">&#125;</span><span style="color: #0000ff;">-&gt;</span><span style="color: #000000;">&#123;</span><span style="color: #0000ff;">'name'</span><span style="color: #000000;">&#125;</span><span style="color: #0000ff;">;</span> <span style="color: #FF9900; font-style: italic;">//Ejemplo de acceso a un segundo nivel</span></pre></div></div>

<p>De esta forma podemos acceder individualmente. Para ver todo el contenido de la petición es todavía más sencillo:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0088ff;">$objeto</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">json_decode</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$cadena_json</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
<span style="color: #0000f0;">var_dump</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$objeto</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span></pre></div></div>

<p>Insisto en que lo probeis y me comentéis algo: <a href="http://delanover.com/twitter" target="_blank">http://delanover.com/twitter</a></p>
<p><u>Un saludo, lipman</u></p>
]]></content:encoded>
			<wfw:commentRss>http://delanover.com/2012/02/04/twitter-stalker-script-para-obtener-datos-de-una-cuenta-de-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Comando lftp] Copias de seguridad en Android en modo local.</title>
		<link>http://delanover.com/2012/01/21/comando-lftp-copias-de-seguridad-en-android-a-traves-de-internet/</link>
		<comments>http://delanover.com/2012/01/21/comando-lftp-copias-de-seguridad-en-android-a-traves-de-internet/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 10:43:43 +0000</pubDate>
		<dc:creator>lipman</dc:creator>
				<category><![CDATA[Información]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[lftp]]></category>

		<guid isPermaLink="false">http://delanover.com/?p=1376</guid>
		<description><![CDATA[Siento todo este tiempo sin escribir, he estado ocupado con temas de la universidad hasta este dia. Pero bueno, intenté despedirme durante un tiempo con una entrada especial como la de Vodafone. Aunque no haya publicado nada desde entonces, tengo en mente varias entradas, así que volver a estar asiduo (o eso espero). Empezaré la [...]]]></description>
			<content:encoded><![CDATA[<p>Siento todo este tiempo sin escribir, he estado ocupado con temas de la universidad hasta este dia. Pero bueno, intenté despedirme durante un tiempo con una entrada especial como la de Vodafone.</p>
<p>Aunque no haya publicado nada desde entonces, tengo en mente varias entradas, así que volver a estar asiduo (o eso espero).</p>
<p>Empezaré la entrada lanzando una pregunta. ¿Estamos preparados para perder nuestro smartphone? Todos sabemos que la respuesta es no. En ese caso la mayoria de la gente perdería desde contactos hasta fotos. Pero vamos a intentar que este no sea nuestro caso.</p>
<h2>Paso 1: la nube puede ser nuestra amiga.</h2>
<p>Desde hace tiempo, he dejado de agregar contactos al móvil de forma tradicional, es decir, desde el propio teléfono añadir el contacto. Desde ahora, uso mi cuenta de GMail para agregar ahí a los contactos y posteriormente, actualizar los de mi teléfono teniéndolo sincronizado a dicha cuenta.</p>
<p><u>Ventajas:</u><br />
Como principal ventaja, está si perdemos el teléfono, los contactos los seguimos teniendo en nuestra cuenta. Igualmente añado, que podemos añadir contactos desde el teléfono a la cuenta de GMail.<br />
Control de tus contactos desde el ordenador, clasificación, puedes ponerles imágenes, y todo lo que puedes hacer desde tu teléfono, pero más cómodo incluso.</p>
<h2>Paso 2: copia de seguridad de todos nuestros archivos</h2>
<p>El objetivo original de esta entrada era mayormente este paso, ya que era el entretenido realmente, pero ya que estoy, he añadido el paso anterior ya que también me parece interesante.</p>
<p>Lo primero que haremos será bajarnos una aplicación para Android (gratuita): <a href="https://market.android.com/details?id=berserker.android.apps.ftpdroid">FTPDroid</a> (también existe la versión de pago).</p>
<p>Esta aplicación nos permitirá convertir nuestro teléfono en un servidor FTP en donde nos conectaremos desde el ordenador y haremos copias de seguridad. Si, para hacer copias de seguridad solo necesitamos un cable y copiar-pegar, pero eso no es entretenido, se busca una manera más entretenida.</p>
<p><b>Configuración:</b></p>
<p><a href="http://i476.photobucket.com/albums/rr125/lipmandj/screenshot_2012-01-19_1233.png" target="_blank"><img style="margin-right:15px;" align="left" src="http://i476.photobucket.com/albums/rr125/lipmandj/screenshot_2012-01-19_1233.png" height="200"></a><br />
Añadimos un usuario y contraseña, y por defecto, la ruta en la cual accederemos será la de la tarjeta. Podriamos hacer una copia de seguridad de todo el teléfono, pero a mi personalmente me interesa la tarjeta, ya que es ahí en donde solemos meter canciones, recibir archivos, guardar ficheros, fotografias, grabaciones, etc. En este ultimo caso, cambiariamos la ruta que está, por / aunque algunos archivos no nos dejan copiarlos (supongo que teniendo el teléfono rooteado si que te dejará).</p>
<p>En la parte de opciones, desactivamos &#8220;Enable anonymous&#8221; para que solamente podamos acceder al teléfono a través del nombre de usuario y contraseña previamente establecido (por si acaso).</p>
<p>Una vez configurado esto, ya podemos acceder a nuestro teléfono desde el navegador. Si la IP local de nuestro teléfono fuese 192.168.1.100, accederiamos de la siguiente manera: ftp://192.168.1.100:2121</p>
<p><b>Comando lft</b><br />
Ahora, desde la consola realizaremos la copia de ficheros, pero en lugar de usar el comando ftp como todos hemos pensado, usaremos lftp.</p>
<p>A diferencia de ftp, lftp permite realizar <a href="http://www.softpanorama.org/Net/Application_layer/Ftp/lftp.shtml" target="_blank">algunas más cosas</a>, pero nos centraremos en una sola, y es en la función &#8220;mirror&#8221;.</p>
<p>Usaremos esta función para hacer copia de seguridad de nuestra tarjeta. Desde la consola, nos situamos en la carpeta en donde queremos llevar la copia de seguridad y seguimos los siguientes pasos:</p>
<p><code>sftp 192.168.1.100 -p 2121</code></p>
<p>Tras conectarnos establecemos el nombre de usuario y contraseña</p>
<p><code>user Usuario Contraseña</code></p>
<p>Usamos la función mirror, estableciendo que queremos copiar desde la ruta / (Nota: se copia recursivamente por defecto) (Nota 2: recordemos que / equivale a /mnt/sdcard ya que es lo que hemos configurado en nuestro teléfono).</p>
<p><code>mirror /</code></p>
<p>Este proceso nos puede llevar largos minutos, dependiendo de lo que tengamos en el teléfono claro. Ahora viene lo realmente beneficioso e interesante. Al cabo del tiempo habremos sacado nuevas fotos y tendremos nuevos archivos. ¿Tendremos que copiarlos todos de nuevo? No. ¿Hay alguna función que nos permita copiar solo los nuevos? En efecto. Además, esto también nos es útil por si hemos tenido algún problema al hacer la primera copia, como una desconexión a internet o algo.</p>
<p><code>mirror / -n</code></p>
<p>Nos queda hacer un último paso. Al realizar esto, igual tenemos problemas con los permisos. Yo mismo he tenido problemas haciéndolo en Windows, ya que no me dejaba accceder a nada de lo que habia copiado.</p>
<p>Para ello, realizamos un cambio de permisos. Si no nos queremo complicar y estamos en Windows, nos vamos a la carpeta donde hemos hecho la copia y hacemos un chmod recursivo:</p>
<p><code>chmod -R 777 /</code></p>
<h2>Algo más acerca de LFTP</h2>
<p>Dentro de las opciones que nos ofrece el comando mirror, podemos hacer un reverse mirror, que viene siendo lo mismo pero al revés, es decir, en vez de bajarnos del servidor un arbol con sus descendientes, lo subimos.</p>
<p><code>mirror / -R</code></p>
<p>En general, lftp es más potente que ftp. Una diferencia con respecto el comando ftp es que con lftp podemos combinar comandos locales de la consola y comandos propios de lftp. Por ejemplo, desde una sola línea podriamos comprimir el directorio actual (local), subirlo al servidor, y luego borrarlo del directorio local:</p>
<p><code>!(tar -cvvf target.tar * &#038;&#038; gzip target.tar) &#038;&#038; put target.tar.gz &#038;&#038; !(rm target.tar.gz)</code></p>
<p>Como podemos ver, el símbolo de exclamación nos permite ejecutar en el sitio local.<br />
Otra diferencia es que con lftp podemos trabajar fácilmente con el grep. Imaginemos que queremos todos los ficheros que no sean carpetas de nuestr servidor:</p>
<p><code>ls | grep '^[^d]'</code></p>
<p>lftp además de soportar transferencias ftp como hemos estado viendo, también soporta http y sus respectivas versiones encriptadas (ftps y https).</p>
<p>Por último, también interesante, es que lftp puede ejecutar scripts mediante el comando -f de la siguiente manera. Suponiendo que tenemos un archivo llamado <i>script</i> con el siguiente contenido:</p>
<p><code>connect 192.168.1.100 -p 2121<br />
user Usuario Contraseña<br />
ls</code></p>
<p>Al ejecutar lftp -f script se ejecuta todo el contenido del script, nos devuelve el ls del directorio remoto y volvemos a tener la consola operativa.</p>
<p><u>Un saludo, lipman</u></p>
]]></content:encoded>
			<wfw:commentRss>http://delanover.com/2012/01/21/comando-lftp-copias-de-seguridad-en-android-a-traves-de-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parte 2 &#8211; Descuido en Vodafone.es permite acceder a cualquier cuenta de usuario y obtener datos de cualquier teléfono</title>
		<link>http://delanover.com/2011/12/16/parte-2-descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/</link>
		<comments>http://delanover.com/2011/12/16/parte-2-descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 15:47:43 +0000</pubDate>
		<dc:creator>lipman</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Vodafone]]></category>

		<guid isPermaLink="false">http://delanover.com/?p=1322</guid>
		<description><![CDATA[Parte 1 del Post. Tras meses sin hacer nada los de Vodafone.es, el pasado jueves dia 8 publiqué un Proof of Concept de la inseguridad que esta página proveia, hasta el punto de poder entrar en cualquier cuenta a partir únicamente del número de teléfono de la &#8220;víctima&#8221;. En este momento (dia 14 de diciembre), [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap213-copiacopycopy.jpg" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap213-copiacopycopy.jpg" width="550"></a></p>
<p><a href="http://delanover.com/2011/12/08/descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/" target="_blank"><u>Parte 1 del Post.</u></a></b></p>
<p>Tras <b>meses</b> sin hacer nada los de Vodafone.es, el pasado jueves dia 8 publiqué un <a href="http://delanover.com/2011/12/08/descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/" target="_blank">Proof of Concept</a> de la inseguridad que esta página proveia, hasta el punto de poder entrar en cualquier cuenta a partir únicamente del número de teléfono de la &#8220;víctima&#8221;.</p>
<p>En este momento (dia 14 de diciembre), unos 6 días después de la publicación, he vuelto a entrar a Vodafone.es y me he dado cuenta de que han mejorado la seguridad: <b>en lugar de tener que pasar una puerta delgada de madera, tenemos que pasar a través de dos.</b></p>
<p>El principal fallo residía en la obtención de una nueva contraseña, dándole a &#8220;recordar contraseña&#8221;. Esto es lo que habia antes de ser &#8220;arreglado&#8221;:<br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap103.jpg" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap103.jpg" width="400"></a></p>
<p>Ahora:<br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap214.png" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap214.png" width="400"></a></p>
<p>Como podemos ver no ha cambiado mucho, podemos elegir de poner nuestro teléfono, y es realmente lo mismo. Donde si notamos el cambio es en la segunda parte. Antes:</p>
<p><a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap104.jpg" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap104.jpg" width="400"></a></p>
<p>Ahora:<br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap216.png" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap216.png" width="400"></a></p>
<p>La primera parte (lo de la pregunta secreta) aparece una vez la hemos establecido (la primera vez que realicé la prueba no aparecia, y al finalizarla, me pedia que la introdujese). Lo que si que aparece ya fijo es lo demás.<br />
Por un lado, necesitamos la <b>identificación</b> (vease, DNI y demás) y por otro, podemos elegir entre: introducir la entidad en donde tenemos domiciliada nuestra factura, o introducir los 4 últimos dígitos de nuestra cuenta (hmm interesante esto último&#8230;).</p>
<p>Aquí ya va mi primer comentario y el resultado de más pruebas realizadas:</p>
<ul>
<li>Necesitamos el DNI (cosa relativamente fácil de conseguir, vease ingeniería social. Además, es obvio que si esto se le hace a alguien, es porque se le conoce).</li>
<li>Se puede volver a usar fuerza bruta. Si señores, se puede volver a usar fuerza bruta. Sigue sin haber ningún tipo de expiración por cantidad de veces, captcha, o cualquier tipo de arreglo.</li>
</ul>
<p>Tras esto, nos vamos al paso 3. El paso 3 anteriormente era el siguiente:</p>
<p><a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap105.jpg" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap105.jpg" width="400"></a></p>
<p>Ahora es este:<br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap218.png" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap218.png" width="400"></a></p>
<p>¿Diferencia? ninguna. ¿Se puede volver a usar fuerza bruta? Si, se puede.</p>
<p><b>Conclusión hasta el momento:</b> Han hecho el sistema algo más seguro, siendo necesario ahora el DNI de la víctima. Como dije anteriormente, no lo han arreglado, simplemente han puesto una traba más, que tampoco es nada del otro mundo.</p>
<p><b>Problema añadido:</b> Si nos fijamos en el paso dos (el antes y el después), a partir de ahora hay que meter los 4 últimos dígitos del número de cuenta. ¿Qué quiere decir esto? Que ya no habrá diferencia entre &#8220;titular&#8221; y &#8220;usuario&#8221;, y si logramos entrar, veremos todos los datos sin ningún tipo de impedimento (aunque el que habia antes tampoco es que lo fuera demasiado).</p>
<h1>Otras mejoras de seguridad</h1>
<p>Con respecto al tema de la fuerza bruta, se han puesto al dia en lo que es el login principal. Solamente nos deja meter un cierto número de intentos, <a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap222.png" target="_blank">5 para ser exactos</a>. Y aquí si que realmente <a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap220.png" target="_blank">no se puede bruteforcear</a>. Sin embargo, repito, el fallo principal no está en el login, sino en la parte de recuperar la password, por lo que <b>todavia queda por arreglar</b>.</p>
<p>Por otra parte, el buscador lo han cambiado (al fin) ya que sufría más de un XSS en distintos argumentos, en el que insistí mucho. Buscador viejo:<br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap061-1.jpg" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap061-1.jpg" width="400"></a></p>
<p>Buscador nuevo:<br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap224.png" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap224.png" width="400"></a></p>
<h1>El tema de las Cookies</h1>
<p>La verdad es que en el otro post lo mencioné muy por encima porque tampoco queria entrar al tema, ya que no era tan importante como el problema principal. De todos modos, estoy contento de que por lo visto, algún tipo de efecto ha tenido que haber tras hacer la publicación anterior, ya que como dije, en meses no lo habian arreglado, y de repente, 6 dias después de la publicación (justo antes de publicarla volví a comprobar si habian hecho algo nuevo y nada..) me encuentro con que han hecho algo, poco, pero algo.</p>
<p>Principalmente, una de las partes que más me sorprenden de Vodafone, es que guarda la contraseña y el usuario (y el usuario es ni más ni menos que el número de teléfono), en una cookie, de la siguiente forma.</p>
<p><a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap122.jpg" target="_blank"><img src="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap122.jpg" width="300"></a></p>
<p>Todo el mundo sabe (o debería) que nunca jamás se debe guardar en una cookie los credenciales, aunque estén encriptados. En el caso de robar una cookie de alguien, podemos obtener su teléfono (punto de ataque) y su contraseña, que aunque esté encriptada, no es difícil de mostrar <a href="https://encrypted.google.com/#sclient=psy-ab&#038;hl=es&#038;source=hp&#038;q=ver+contrase%C3%B1a+asteriscos+javascript&#038;pbx=1&#038;oq=ver+contrase%C3%B1a+asteriscos+javascript" target="_blank">tras esos asteriscos</a>.</p>
<p><u>Fallos XSS con los que podriamos robar cookies:</u><br />
<b>Viejos</b><br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap114.jpg" target="_blank">Uno</a><br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap1162.jpg" target="_blank">Dos</a></p>
<p><b>Todavia persistentes</b><br />
<a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap1152.jpg" target="_blank">[Uno]</a> <a href="http://zonaclientes.vodafone.es/accesoPortal/getloginpassword?serviceID=312201&#038;operationID=%22%3E%3Cscript%3Ealert%28%27XSS%27%29%3C/script%3E" target="blank">[Enlace]</a><br />
<a href="https://ayudacliente.vodafone.es/system/selfservice.controller?CMD=VIEW_ARTICLE&#038;CURRENT_CMD=DFAQ&#038;allArticleIds=324310%2C324313%2C341836%2C341851%2C341855%2C341856%2C348104%2C348105&#038;basicOrAdvanced=basic&#038;SIDE_LINK_TOPIC_ID=32201&#038;SIDE_LINK_SUB_TOPIC_ID=32205&#038;SIDE_LINK_TOPIC_INDEX=&#038;SIDE_LINK_SUB_TOPIC_INDEX=&#038;userInput=&#038;isSortingReq=0&#038;sortOrder=&#038;sortOn=&#038;nextPageNo=&#038;currPageNo=1&#038;totalPages=1&#038;USEFUL_ITEMS_FRAME_TITLE=&#038;COUNTRY=%22%3E%3Cscript%3Ealert%28%22XSS%22%29%3C/script%3E&#038;LANGUAGE=es&#038;ARTICLE_ID=324310&#038;CONFIGURATION=1014&#038;PARTITION_ID=1&#038;EXPANDED_TOPIC_TREE_NODES=+32201+32205+&#038;USERTYPE=1" target="_blank">[Filtro interesante (WAF)]</a> <a href="https://ayudacliente.vodafone.es/system/selfservice.controller?pageSize=20&#038;CMD=ADV_SEARCH&#038;OmnSearch=yes&#038;baynote=true&#038;KEYWORDS=%3Easd&#038;TOPIC_NAME=&#038;SUBTOPIC_NAME=Todos+los+subtemas&#038;subTopicType=0&#038;BOOL_SEARCHSTRING=+%26wtquote%3B%3Easd%26wtquote%3B+&#038;SIDE_LINK_TOPIC_ID=&#038;SSO_PARAMETERS=null%26null+&#038;COUNTRY=es&#038;LANGUAGE=es&#038;CONFIG_ID=null&#038;searchString=%22%3E%3Cbody%20onload=alert%28%27Delanover%27%29%3E&#038;matchOnAll=kb%3A%3Aarticle_search_data%23name%23string_text%23all_of_these%23%24TEXTTOBESEARCHED%24%23or%24kb%3A%3Aarticle_search_data%23article_key_words%23string_text%23all_of_these%23%24TEXTTOBESEARCHED%24%23or%24&#038;criterion=kb%3A%3Aarticle_search_data%23name%23string_text%23all_of_these%23%22%3Easd%23or%24kb%3A%3Aarticle_search_data%23article_key_words%23string_text%23all_of_these%23%22%3Easd%23or%24&#038;SUBTOPIC=-1" target="_blank">[Filtro Bypasseado]</a> <a href="http://i476.photobucket.com/albums/rr125/lipmandj/MWSnap225.png" target="_blank">[Imagen]</a> (En varios argumentos de la URL)</p>
<p><b>Otros:</b><br />
<a href="http://tienda.vodafone.es/puntos/movil/samsung/galaxy_mini_blanco?tipo=%22%3E%3Cscript%3Ealert%28%22XSS%22%29%3C/script%3E" target="_blank">[Este lo han intentado arreglar de alguna forma.. pero la página nunca termina de cargar]</a></p>
<p>Animo a que pongais más si los encontrais.</p>
<p><u>Un saludo, lipman</u></p>
]]></content:encoded>
			<wfw:commentRss>http://delanover.com/2011/12/16/parte-2-descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descuido en Vodafone.es permite acceder a cualquier cuenta de usuario y obtener datos de cualquier teléfono</title>
		<link>http://delanover.com/2011/12/08/descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/</link>
		<comments>http://delanover.com/2011/12/08/descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 16:03:06 +0000</pubDate>
		<dc:creator>lipman</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Vodafone]]></category>

		<guid isPermaLink="false">http://delanover.com/?p=1297</guid>
		<description><![CDATA[Nota: han arreglado algunas cosillas, aunque todavia sigue quedando este fallo. Parte 2 del Post. &#8220;Esto&#8221; está descubierto y reportado desde hace más de medio año&#8230; He intercambiado mails y conversaciones telefónicas con Vodafone y con la propia policia (GDT). Tenia un post explicándolo todo detalladamente además de un PDF que mandé a ambas partes, [...]]]></description>
			<content:encoded><![CDATA[<p><b>Nota: han arreglado algunas cosillas, aunque todavia sigue quedando este fallo. <a href="http://delanover.com/2011/12/16/parte-2-descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/" target="_blank"><u>Parte 2 del Post.</u></a></b></p>
<p>&#8220;Esto&#8221; está descubierto y reportado desde hace más de medio año&#8230; He intercambiado mails y conversaciones telefónicas con Vodafone y con la propia policia (GDT). Tenia un post explicándolo todo detalladamente además de un PDF que mandé a ambas partes, pero visto que no lo arreglan nunca, no lo voy a publicar. Lo que haré será un mini resumen, y se acabó, ya que quiero olvidarme de este tema completamente.</p>
<p>Antes de nada os hago un spoiler: no es nada del otro mundo. Solo es una muestra de cómo una absurda tonteria, nos permite hacer cosas que no deberiamos. Es más, esto indica que este descuido es realmente grave, ya que cualquiera puede explotarlo.</p>
<p>Empezaré con el debate respecto al título elegido de esta entrada. Ojalá hubiera podido poner &#8220;Bug en Vodafone.es&#8230;&#8221; o &#8220;Fallo de seguridad/Vulnerabilidad..&#8221;. En fin, múltiples son los adjetivos para ello. Pero no, pongo <b>descuido por no poner incompetencia</b>, ya que guardar en una cookie el nombre de usuario (teléfono) y la contraseña (encripada, pero eso da igual) no es un fallo de programación, no es un bug, no es una vulnerabilidad&#8230; es ser un incompetente. Menciono también que tiene XSSs varios, sin ir más lejos, creo recordar que el propio buscador tenía.</p>
<p>Como dije anteriormente, voy a ser breve, y no voy a dar detalles. Solo decir esto: no seas gilipollas.</p>
<p>Como dice el título, este descuido nos permite meternos en la cuenta de usuario <b>a partir únicamente de su número de teléfono. Y si no tiene cuenta, también nos lo permite porque le podemos registrar nosotros mismos</b>.<br />
Uno de los orígenes de este problema, es que si le damos a &#8220;olvidar contraseña&#8221;, podemos poner el número de teléfono objetivo y nuestra dirección de correo. Nos mandan una clave numerica de 4 digitos al movil para que la introduzcamos y establezcamos una nueva contraseña. Pues bien, podemos hacer fuerza bruta tranquilamente que al final, daremos con esa clave que no puede ser otra que alguna entre 0000 y 9999. Una forma para hacer fuerza bruta sin ser un 5uP3RH4X0R es usar el iMacros para Firefox, haciendo:</p>
<p><i>SET !LOOP 1000<br />
URL GOTO=http://canalonline.vodafone.es/cpar/do/alta/changePassword?uuid=XXXXXXXX&#038;claveAntigua={{!loop}}&#038;claveNueva=1234&#038;rePassword=1234</i></p>
<p>(Esta iría desde 1000 hasta 9999, y estableceria como nueva contraseña 1234).<br />
Así que nada, después de esto ya podemos meternos en la cuenta. Pero no podemos acceder a todos los datos, que pena. No podemos porque tenemos que ser titular, y para eso, tenemos que validarnos. ¿Como? Pues hay varias formas. Una de ellas es introduciendo los 4 últimos dígitos de nuestra cuenta bancaria asociada.</p>
<p>¿Otra vez 4 números? Esto me suena de antes&#8230; Exacto. iMacros de nuevo. Y claro, si aquí tampoco ponemos nada que nos impida un bruteforce como un captcha o una expiración de la sesión, pues igualmente podemos petarlo. Y efectivamente, se puede.</p>
<p>Datos comprometidos (entre otros tantos): DNI, nombre, dirección postal, factura electrónica (con mas telefonos claro, que a su vez igual tambien son de Vodafone), códigos PIN y PUK (ideal por si robamos un teléfono verdad?)&#8230;</p>
<p>Yo flipo con las empresas. Pero sobretodo con su pasotismo a la hora de no arreglar nada, ni contactar conmigo siquiera. En fin&#8230;</p>
<p><b>Conclusiones:</b><br />
-Se puede bruteforcear todo vodafone.es sin problemas<br />
-Se puede robar una cookie con datos como la contraseña y usuario para suplantarse (ya que presenta varios XSS).<br />
-Poned un puto <u><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1291226664910.jpg" target="_blank"><font color="green">c</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1292858190606.png" target="_blank"><font color="red">a</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1293378522197.jpg" target="_blank"><font color="yellow">p</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1294750437347.png" target="_blank"><font color="orange">t</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1294750581114.jpg" target="_blank"><font color="blue">c</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1294750961785.png" target="_blank"><font color="pink">h</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1296397802563.png" target="_blank"><font color="black">a</font></a><a href="http://i476.photobucket.com/albums/rr125/lipmandj/1296397536951.jpg" target="_blank"><font color="white">!</font></a></u> de una vez.<br />
-Insisto en que la gravedad de este asunto es que es demasiado fácil realizar esto, no hay que ser un experto ni tener conocimientos de nada.<br />
-Seria curioso saber cuantas leyes se pasan por el forro los de Vodafone, como la de las auditorias (a saber si las hacen siquiera, o si les hacen caso), sin contar con las que hacen mención a que hay que proteger bien los datos.</p>
<p><b>Dato adicional</b>: Vodafone no es la única compañia de telecomunicaciones cuya identidad de sus usuarios se basa en algo tan simple. Aunque lo de guardar en la cookie las password, todavia me sigue costando creerlo. Ahí lo dejo caer&#8230;</p>
<p><a href="https://twitter.com/#!/jmlipman/status/144809518788919296" target="_blank">Retweetealo!</a><br />
<a href="http://twitter.com/jmlipman" target="_blank">Mi Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delanover.com/2011/12/08/descuido-en-vodafone-es-permite-acceder-a-cualquier-cuenta-de-usuario-y-obtener-datos-de-cualquier-telefono/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Seguridad a la hora de crear entradas en WordPress</title>
		<link>http://delanover.com/2011/11/24/seguridad-a-la-hora-de-crear-entradas-en-wordpress/</link>
		<comments>http://delanover.com/2011/11/24/seguridad-a-la-hora-de-crear-entradas-en-wordpress/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 11:52:27 +0000</pubDate>
		<dc:creator>lipman</dc:creator>
				<category><![CDATA[Programación Web]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://delanover.com/?p=1261</guid>
		<description><![CDATA[INDICE 0.-Resumen 1.-Introducción 2.-Buscando un algoritmo 3.-Implementando nuestro sistema en WordPress 3.1.-Añadiendo posts a nuestra base de datos 3.1.1.-Analizando la tabla de wp_posts 3.1.2.-Nuestra consulta 3.1.3.-La tabla wp_postmeta 3.2.-Implementando la seguridad en nuestra aplicación 3.3.-Conclusión y funcionamiento final 4.-Códigos finales completos 0.-Resumen En este post intentaré explicar un método casero para poder escribir en nuestro [...]]]></description>
			<content:encoded><![CDATA[<p><b>INDICE<br />
0.-Resumen<br />
1.-Introducción<br />
2.-Buscando un algoritmo<br />
3.-Implementando nuestro sistema en WordPress<br />
3.1.-Añadiendo posts a nuestra base de datos<br />
3.1.1.-Analizando la tabla de wp_posts<br />
3.1.2.-Nuestra consulta<br />
3.1.3.-La tabla wp_postmeta<br />
3.2.-Implementando la seguridad en nuestra aplicación<br />
3.3.-Conclusión y funcionamiento final<br />
4.-Códigos finales completos<br />
</b></p>
<h1>0.-Resumen</h1>
<p>En este post intentaré explicar un método casero para poder escribir en nuestro respectivo blog de WordPress desde cualquier lugar sin tener que preocuparnos en que nos estén analizando el tráfico. Ideal por si estamos en una red que no es la nuestra, como en casa de algún conocido o en un hotel.</p>
<h1>1.-Introducción</h1>
<p>Una de las responsabilidades que tenemos/tienen los bloggers es de mantener actualizado nuestro blog que tanto queremos, incluso si nos encontramos en otros lugares. Sin embargo, no todos disponemos de 3G y algunos tenemos que ir mendigando WiFi por los hoteles, o en casa de un pariente. Yo, con lo paranoico que soy que incluso uso <a href="http://delanover.com/2011/03/10/realizar-busquedas-encriptadas-con-google/" target="_blank">la versión encriptada de Google</a>, siempre trato de intentar comprometer lo menos posible mis datos.</p>
<p>Si no tenemos puesto SSL en nuestro blog de WordPress, y nos logueamos en una red que puedan tener monitorizada, fácilmente nos sacan nuestro user y pass, por lo que tendremos que buscar una alternativa para loguearnos que sea más segura que nuestra propia cuenta.</p>
<h1>2.-Buscando un algoritmo</h1>
<p>Una idea que se me ha ocurrido para esto, es identificarnos con un hash que varíe, de forma que si es obtenido por algún tercero, no le sirva para nada. Lo más fácil de recordar que varíe, es el tiempo, así que podriamos usar un algoritmo basado en:</p>
<ul>
<li>Caracteres alfanuméricos.</li>
<li>Caracteres especiales.</li>
<li>Caracteres que varien automáticamente (en función del tiempo).</li>
<li>Caracteres que varien de forma controlada.</li>
<li>Mayúsculas y minúsculas.</li>
</ul>
<p>Un ejemplo podria ser en base al siguiente:<br />
///XXlipmanYY///<br />
En donde XX es el dia del mes, y YY la hora. He elegido este par de números debido a que varian lo suficientemente rápido como para que no se reutilicen, y lo suficientemente lento como para controlarlos. Además de esto, usaremos un truco para añadir un caracter aleatorio fácil de recordar. Dependiendo del dia de la semana (lunes, martes&#8230;) teclearemos una tecla debajo de los números, dependiendo del dia que sea. Por ejemplo, cuando sea lunes, pulsamos la Q, cuando sea martes la W&#8230; (notese que seria en mayúsculas).</p>
<p>Ejemplo completo:<br />
Lunes 20 a las 8AM: ///20Qlipman8///<br />
Martes 21 a las 15PM: ///21lWipman15///<br />
Viernes 24 a las 2AM: ///24lipmTan2///</p>
<p>Notese que las letras mayúsculas &#8220;aleatorias&#8221; las vamos alternando en las posiciones entre la palabra &#8220;lipman&#8221;. Para que quede bien, necesitamos palabras de 6 caracteres.<br />
De aquí también podemos descatar lo imprescindible que es que una contraseña no empiece por números o por letras cercanas a los extremos del alfabeto, para que sea todavia más improbable que un brute force nos descubra la contraseña.</p>
<h1>3.-Implementando nuestro sistema en WordPress</h1>
<p>Ya tenemos el diseño (respecto a la seguridad) de nuestra aplicación, por lo que queda la parte más entretenida: realizar una aplicación para comunicarnos con WordPress implementando nuestro sistema. Voy a poner solo lo que es esencial: comunicación entre nuestra aplicación y la base de datos para añadir entradas. Por nuestra cuenta podriamos desarrollar más cosas, como una mejor interfaz gráfica, pero esto lo dejaré a parte ya que seguramente dejaré esto como un plugin (ya hablaré más adelante) y haré mejoras en todo.</p>
<h1>3.1.-Añadiendo posts a nuestra base de datos</h1>
<p>Para nuestra suerte, la base de datos de WordPress (y en general la de cualquier CMS) suele ser sencillita, así que no deberiamos de tener problemas para manejarla.<br />
Lo primero de todo, aprovecharemos el fichero de wp-config.php para conectar a nuestra base de datos. Este fichero es el primero que se genera cuando creamos nuestro sitio en WordPress, y contiene los datos de nuestra base de datos: nombre, usuario, contraseña&#8230; Así que le haremos un <i>include</i>.</p>
<h2>3.1.1.-Analizando la tabla de wp_posts</h2>
<p>Lo interesante de este tipo de situaciones, es analizarlas y aprovecharlas para intentar entender el funcionamiento interior de WordPress, por ello, no me limitaré a hacer, copiar y pegar código simplemente, sino que se intentará explicará todo.</p>
<p>A continuación, vamos a escribir los campos que tendremos que tocar (osease, todos menos los que suelen ir a NULL), explicandolos un poco, sobre todo, los que sean menos obvios.</p>
<table>
<tr>
<td><b>Nombre</b></td>
<td><b>Comentario</b></td>
</tr>
<tr>
<td><em>ID</em></td>
<td>Id (PK) del post</i><br />
</tr>
<tr>
<td><em>post_author</em></td>
<td>ID del autor</td>
</tr>
<tr>
<td><em>post_date</em></td>
<td>Fecha de escritura</td>
</tr>
<tr>
<td><em>post_date_gmt</em></td>
<td>Fecha de escritura (GMT)</td>
</tr>
<tr>
<td><em>post_content</em></td>
<td>Contenido del post</td>
</tr>
<tr>
<td><em>post_title</em></td>
<td>Titulo</td>
</tr>
<tr>
<td><em>post_status</em></td>
<td>Estado: publicado, borrador..</td>
</tr>
<tr>
<td><em>comment_status</em></td>
<td>Permitir comentarios</td>
</tr>
<tr>
<td><em>ping_status</em></td>
<td>Permitir pingback</td>
</tr>
<tr>
<td><em>post_name</em></td>
<td>Nombre parseado (*)</td>
</tr>
<tr>
<td><em>post_modified</em></td>
<td>Fecha de modificación</td>
</tr>
<tr>
<td><em>post_modified_gmt</em></td>
<td>Fecha de modificación (GMT)</td>
</tr>
<tr>
<td><em>post_parent</em></td>
<td>A quien pertenece (*)</td>
</tr>
<tr>
<td><em>guid</em></td>
<td>URL parseada (*)</td>
</tr>
<tr>
<td><em>menu_order</em></td>
<td>Orden: 0</td>
</tr>
<tr>
<td><em>post_type</em></td>
<td>Indica si es un post</td>
</tr>
<tr>
<td><em>comment_count</em></td>
<td>Contador de comentarios</td>
</tr>
</table>
<p><i>-Nombre parseado:</i> Se obtiene en función del titulo. Si tenemos el siguiente titulo: &#8220;Hola Mundo&#8221;, obtendremos: &#8220;hola-mundo&#8221;. Osease, lo que aparece (si lo tenemos configurado así) de enlace.</p>
<p><i>-A quien pertenece:</i> Esto solo hace referencia a los borradores y demás. Con respecto a los posts publicados, ni caso.</p>
<p><i>-URL parseada:</i> Esta seria la URL del post en el caso de tenerlo configurado de manera que se viera la ID en la URL. Un ejemplo, en el caso de delanover, si escribiesemos un post con ID 1234, este campo seria: http://delanover.com/?p=1234</p>
<h2>3.1.2.-Nuestra consulta</h2>
<p>De momento, llevamos lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #FF9900; font-style: italic;">//Incluimos los datos de configuración de nuestra base de datos</span>
<span style="color: #006600;">include</span><span style="color: #000000;">&#40;</span><span style="color: #0000ff;">'wp-config.php'</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #0000f0;">mysql_connect</span><span style="color: #000000;">&#40;</span>DB_HOST<span style="color: #0000ff;">,</span> DB_USER<span style="color: #0000ff;">,</span> DB_PASSWORD<span style="color: #000000;">&#41;</span> or <span style="color: #0000f0;">die</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;Error al conectar&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//Creamos la consulta</span>
<span style="color: #0088ff;">$consulta_principal</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;INSERT INTO `wp_posts`(`ID`, `post_author`, `post_date`, `post_date_gmt`,
	`post_content`, `post_title`, `post_status`, `comment_status`, `ping_status`,
	`post_name`,`post_modified`, `post_modified_gmt`,
	`post_parent`, `guid`, `menu_order`, `post_type`, `comment_count`) VALUES
	('<span style="color: #006699; font-weight: bold;">$id</span>', 1,<span style="color: #006699; font-weight: bold;">$fecha</span>,<span style="color: #006699; font-weight: bold;">$fecha_gmt</span>,'<span style="color: #006699; font-weight: bold;">$contenido</span>','<span style="color: #006699; font-weight: bold;">$titulo</span>','publish','open','open',
	'<span style="color: #006699; font-weight: bold;">$titulo_parseado</span>',<span style="color: #006699; font-weight: bold;">$fecha</span>,<span style="color: #006699; font-weight: bold;">$fecha_gmt</span>,0,'<span style="color: #006699; font-weight: bold;">$id_parseada</span>',0,'post',0)&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #0088ff;">$resultado_principal</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta_principal</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span></pre></div></div>

<p>Como podemos observar en nuestra consulta, hay variables y valores constantes. Me limitaré a contar un poco las variables al igual que la forma de obtenerlas, ya que los valores constantes son un tanto redundantes.</p>
<p><b>-ID:</b> Es la ID que tendrá nuestro post. Esta ID se consigue obteniendo el valor máximo de todas las IDs que ya hay, incrementando su valor en uno, de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #000099;">MAX</span><span style="color: #FF00FF;">&#40;</span>ID<span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">from</span> <span style="color: #008000;">`wp<span style="color: #008080; font-weight: bold;">_</span>posts`</span></pre></div></div>

<p><b>-Fecha:</b> Es la fecha de creación de nuestra entrada. Tiene un formato específico y estricto que deberemos seguir para que nos funcione correctamente. El formato es el siguiente: AAAA-MM-DD HH:MM:SS<br />
Obtendremos este formato de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0088ff;">$fecha</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;DATE '&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;Y-n-j H:i:s&quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;'&quot;</span><span style="color: #0000ff;">;</span></pre></div></div>

<p>Nota: notese que hay que concatenar &#8220;DATE &#8216;&#8221; a nuestra fecha, para que a la hora de introducirlo a la BD lo reconozca como tal.</p>
<p><b>-FechaGMT:</b> Lo mismo que el anterior, incrementando +2 horas. Todo esto de las fechas, depende totalmente de donde nos encontramos.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0088ff;">$fecha_gmt</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;DATE '&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;Y-n-j &quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #000000;">&#40;</span><span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;H&quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;:i:s&quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;'&quot;</span><span style="color: #0000ff;">;</span></pre></div></div>

<p><b>-Contenido</b> y <b>Titulo:</b> Este par de campos, sencillamente son lo que escribimos de titulo y contenido, por lo que no hay que tratar demasiado.</p>
<p><b>-ID parseada:</b> Como comenté anteriormente, no es muy dificil de conseguir, simplemente seria concatenando una constante a la ID:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0088ff;">$id_parseada</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;http://delanover.com/test_wordpss/?p=&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$id</span><span style="color: #0000ff;">;</span></pre></div></div>

<p><b>-Titulo parseado:</b> Esta la he dejado para el final ya que es la más largilla de hacer, para la cual he creado una función específica. En principio, al ser el enlace, lo unico que puede contener son letras (quitaré las tildes), numeros, guiones bajos y guiones. Por lo que haré lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0088ff;">$titulo_parseado</span> <span style="color: #0000ff;">=</span> parsear_titulo<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #0000f0;">function</span> parsear_titulo<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
  <span style="color: #FF9900; font-style: italic;">//pasamos a minusculas y cambiamos caracteres</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">strtolower</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot; &quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;-&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;á&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;a&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;é&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;e&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;í&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;i&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;ó&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;o&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;ú&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;u&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #0088ff;">$caracteres_permitidos</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">array</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;a&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;b&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;c&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;d&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;e&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;f&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;g&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;h&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;i&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;j&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;k&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;l&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;m&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;n&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;ñ&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;o&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;p&quot;</span><span style="color: #0000ff;">,</span>
  			<span style="color: #cc0000;">&quot;q&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;r&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;s&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;t&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;u&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;v&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;w&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;x&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;y&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;z&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;1&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;2&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;3&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;4&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;5&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;6&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;7&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;8&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;9&quot;</span><span style="color: #0000ff;">,</span>
  			<span style="color: #cc0000;">&quot;0&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;_&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;-&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #FF9900; font-style: italic;">//Si nos encontramos con un caracter no permitido (que no salga en el array anterior), lo eliminamos</span>
  <span style="color: #006600;">for</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$a</span><span style="color: #0000ff;">=</span><span style="color: #ff0000;">0</span><span style="color: #0000ff;">;</span><span style="color: #0088ff;">$a</span><span style="color: #0000ff;">&lt;</span>strlen<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span><span style="color: #0088ff;">$a</span><span style="color: #0000ff;">++</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
     <span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0000ff;">!</span><span style="color: #0000f0;">in_array</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#91;</span><span style="color: #0088ff;">$a</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$caracteres_permitidos</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
       <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#91;</span><span style="color: #0088ff;">$a</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;&quot;</span><span style="color: #0000ff;">;</span>
       <span style="color: #000000;">&#125;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #006600;">return</span> <span style="color: #0088ff;">$titulo</span><span style="color: #0000ff;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<h2>3.1.3.-La tabla wp_postmeta</h2>
<p>Afortunadamente para nosotros, el tratamiento de esta tabla será todavia más sencillo, y limitaré mi explicación por no tener demasiado que ver con el tema principal.</p>
<p>Explicaré brevemente los detalles dentro del código fuente:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #FF9900; font-style: italic;">//Obtenemos el ID maximo</span>
<span style="color: #0088ff;">$consulta_metapost</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;SELECT MAX(meta_id) from `wp_postmeta`&quot;</span><span style="color: #0000ff;">;</span>
<span style="color: #0088ff;">$respuesta_metapost</span><span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta_metapost</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
<span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #0000ff;">=</span><span style="color: #0000f0;">mysql_fetch_array</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$respuesta_metapost</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #0088ff;">$_id</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$resultado</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">1</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//Introducimos el ID recogido, el ID anterior que teniamos del post, y dos valores constantes</span>
<span style="color: #0088ff;">$consulta2</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;INSERT INTO `wp_postmeta`(`meta_id`, `post_id`, `meta_key`,
`meta_value`) VALUES (<span style="color: #006699; font-weight: bold;">$_id</span>,<span style="color: #006699; font-weight: bold;">$id</span>,'_edit_last',1)&quot;</span><span style="color: #0000ff;">;</span>
<span style="color: #0088ff;">$resultado_consulta2</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta2</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #0088ff;">$_id</span><span style="color: #0000ff;">++;</span> <span style="color: #FF9900; font-style: italic;">//Aumentamos el ID ya que vamos a insertar otra fila</span>
<span style="color: #FF9900; font-style: italic;">//Obtenemos un valor que meteremos, compuesto por el tiempo y el ID del autor</span>
<span style="color: #0088ff;">$meta_valor</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;:1&quot;</span><span style="color: #0000ff;">;</span>
<span style="color: #0088ff;">$consulta3</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;INSERT INTO `wp_postmeta`(`meta_id`, `post_id`, `meta_key`,
`meta_value`) VALUES (<span style="color: #006699; font-weight: bold;">$_id</span>,<span style="color: #006699; font-weight: bold;">$id</span>,'_edit_lock','<span style="color: #006699; font-weight: bold;">$meta_valor</span>')&quot;</span><span style="color: #0000ff;">;</span>
<span style="color: #0088ff;">$resultado_consulta3</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta3</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span></pre></div></div>

<h1>3.2.-Implementando la seguridad en nuestra aplicación</h1>
<p>Muy bien, con todo esto ya deberia de funcionarnos el sistema, pero claro, falta lo más importante, implementar la seguridad con ese hash dinámico que generamos.</p>
<p>Lo más sencillo es crear una función que nos devuelva un valor booleano, en función de si el hash introducido es verdadero (entonces se ejecuta) o falso (devolviendo un error).</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0000f0;">function</span> comprobar_hash<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$hash</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
<span style="color: #0088ff;">$hora</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;H&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">6</span><span style="color: #0000ff;">;</span> <span style="color: #FF9900; font-style: italic;">//Obtenemos la hora (la adecuamos en función de la hora del servidor a la hora de nuestro pais)</span>
<span style="color: #0088ff;">$dia</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;j&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span> <span style="color: #FF9900; font-style: italic;">//Obtenemos el dia</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//Nuestro salt</span>
<span style="color: #0088ff;">$cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;lipman&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//En función del dia, generamos un resultado u otro</span>
<span style="color: #006600;">switch</span><span style="color: #000000;">&#40;</span><span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;N&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">1</span><span style="color: #0000ff;">:</span>
  <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;Q&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">2</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;W&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">3</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;E&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">4</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;R&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">5</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;T&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">6</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;Y&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">case</span> <span style="color: #ff0000;">7</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;U&quot;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">default</span><span style="color: #0000ff;">:</span>
  	<span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;error&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//Obtenemos la cadena formada y la pasamos a MD5</span>
<span style="color: #0088ff;">$resultado</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;///&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$dia</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$hora</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;///&quot;</span><span style="color: #0000ff;">;</span>
<span style="color: #0088ff;">$resultado</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">md5</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//Finalmente comprobamos si coincide con el hash pasado por parámetro</span>
<span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #0000ff;">==</span><span style="color: #0088ff;">$hash</span><span style="color: #000000;">&#41;</span>
	<span style="color: #0088ff;">$final</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;Verdadero&quot;</span><span style="color: #0000ff;">;</span>
<span style="color: #006600;">else</span>
	<span style="color: #0088ff;">$final</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;Falso&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
<span style="color: #006600;">return</span> <span style="color: #0088ff;">$final</span><span style="color: #0000ff;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<h1>3.3.-Conclusión y funcionamiento final</h1>
<p>Nos falta diseñar la página de &#8220;login&#8221; en la que tendriamos que recoger el titulo de la entrada, el contenido, y el hash en MD5. Este hash en MD5 recordemos que es nuestra contraseña aleatoria pasada a MD5. Un apunte respecto a esto: imaginemos que nos están esnifando la red y tal. Vale, usamos este sistema y todos felices, pero si a la hora de crear nuestro hash MD5 (para que posteriormente lo valide) usamos una herramienta externa en una página web, nos esnifan esto, y no tiene mucho sentido.</p>
<p>Para ello, recomiendo que tengais un programa o algo, ya que desde la consola de Windows, a diferencia de la Linux, no se puede obtener el MD5 de una cadena. Si no, si teneis un servidor web instalado, lo haceis desde ahí usando la función de PHP &#8220;md5&#8243;.</p>
<h1>4.-Códigos finales completos</h1>
<p><b>crear.html</b></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;create.php&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;POST&quot;</span>&gt;</span>
Metemos el hash
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hash&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span>&gt;</span>
&nbsp;
Titulo
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;titulo&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span>&gt;</span>
&nbsp;
Contenido<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">textarea</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;contenido&quot;</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">textarea</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Aceptar&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></div></div>

<p><b>create.php</b></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #ff0000; font-weight: bold;">&lt;?</span>
&nbsp;
<span style="color: #FF9900; font-style: italic;">//Recuperamos el hash</span>
<span style="color: #0088ff;">$hash</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$_POST</span><span style="color: #000000;">&#91;</span><span style="color: #0000ff;">'hash'</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span>
&nbsp;
&nbsp;
<span style="color: #0088ff;">$postear</span> <span style="color: #0000ff;">=</span> comprobar_hash<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$hash</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
&nbsp;
<span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$postear</span><span style="color: #0000ff;">==</span><span style="color: #cc0000;">&quot;Verdadero&quot;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>	<span style="color: #FF9900; font-style: italic;">//Incluimos las variables para conectarnos a la base de datos</span>
	<span style="color: #006600;">include</span><span style="color: #000000;">&#40;</span><span style="color: #0000ff;">'wp-config.php'</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Recogemos el contenido y titulo del post</span>
	<span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$_POST</span><span style="color: #000000;">&#91;</span><span style="color: #0000ff;">'titulo'</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$contenido</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$_POST</span><span style="color: #000000;">&#91;</span><span style="color: #0000ff;">'contenido'</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #0000f0;">mysql_connect</span><span style="color: #000000;">&#40;</span>DB_HOST<span style="color: #0000ff;">,</span> DB_USER<span style="color: #0000ff;">,</span> DB_PASSWORD<span style="color: #000000;">&#41;</span> or <span style="color: #0000f0;">die</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;Error al conectar&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Obtenemos el ID que del nuevo post</span>
	<span style="color: #0088ff;">$consulta</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;SELECT MAX(ID) from `wp_posts`&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$respuesta</span><span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
	<span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #0000ff;">=</span><span style="color: #0000f0;">mysql_fetch_array</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$respuesta</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #0088ff;">$id</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$resultado</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">1</span><span style="color: #0000ff;">;</span>
&nbsp;
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Obtenemos las fechas</span>
	<span style="color: #0088ff;">$fecha</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;DATE '&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;Y-n-j H:i:s&quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;'&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$fecha_gmt</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;DATE '&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;Y-n-j &quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #000000;">&#40;</span><span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;H&quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;:i:s&quot;</span><span style="color: #0000ff;">,</span><span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;'&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Parseamos el titulo</span>
	<span style="color: #0088ff;">$titulo_parseado</span> <span style="color: #0000ff;">=</span> parsear_titulo<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$id_parseada</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;http://delanover.com/test_wordpss/?p=&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$id</span><span style="color: #0000ff;">;</span>
&nbsp;
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Realizamos la consulta principal</span>
	<span style="color: #0088ff;">$consulta_principal</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;INSERT INTO `wp_posts`(`ID`, `post_author`, `post_date`, `post_date_gmt`,
	`post_content`, `post_title`, `post_status`, `comment_status`, `ping_status`,
	`post_name`,`post_modified`, `post_modified_gmt`,
	`post_parent`, `guid`, `menu_order`, `post_type`, `comment_count`) VALUES
	('<span style="color: #006699; font-weight: bold;">$id</span>', 1,<span style="color: #006699; font-weight: bold;">$fecha</span>,<span style="color: #006699; font-weight: bold;">$fecha_gmt</span>,'<span style="color: #006699; font-weight: bold;">$contenido</span>','<span style="color: #006699; font-weight: bold;">$titulo</span>','publish','open','open',
	'<span style="color: #006699; font-weight: bold;">$titulo_parseado</span>',<span style="color: #006699; font-weight: bold;">$fecha</span>,<span style="color: #006699; font-weight: bold;">$fecha_gmt</span>,0,'<span style="color: #006699; font-weight: bold;">$id_parseada</span>',0,'post',0)&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$resultado_principal</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta_principal</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//=====PARTE DOS======\\</span>
	<span style="color: #FF9900; font-style: italic;">//Obtenemos el ID de la otra tabla</span>
	<span style="color: #0088ff;">$consulta_metapost</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;SELECT MAX(meta_id) from `wp_postmeta`&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$respuesta_metapost</span><span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta_metapost</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
	<span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #0000ff;">=</span><span style="color: #0000f0;">mysql_fetch_array</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$respuesta_metapost</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #0088ff;">$_id</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$resultado</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">1</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Realizamos las dos consultas</span>
	<span style="color: #0088ff;">$consulta2</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;INSERT INTO `wp_postmeta`(`meta_id`, `post_id`, `meta_key`,
	`meta_value`) VALUES (<span style="color: #006699; font-weight: bold;">$_id</span>,<span style="color: #006699; font-weight: bold;">$id</span>,'_edit_last',1)&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$resultado_consulta2</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta2</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #0088ff;">$_id</span><span style="color: #0000ff;">++;</span>
	<span style="color: #0088ff;">$meta_valor</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;:1&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$consulta3</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;INSERT INTO `wp_postmeta`(`meta_id`, `post_id`, `meta_key`,
	`meta_value`) VALUES (<span style="color: #006699; font-weight: bold;">$_id</span>,<span style="color: #006699; font-weight: bold;">$id</span>,'_edit_lock','<span style="color: #006699; font-weight: bold;">$meta_valor</span>')&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #0088ff;">$resultado_consulta3</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">mysql_query</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$consulta3</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #FF9900; font-style: italic;">//Si todo va bien, que muestre el mensaje</span>
	<span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado_principal</span> <span style="color: #0000ff;">&amp;&amp;</span> <span style="color: #0088ff;">$resultado_consulta2</span> <span style="color: #0000ff;">&amp;&amp;</span> <span style="color: #0088ff;">$resultado_consulta3</span><span style="color: #000000;">&#41;</span>
		<span style="color: #006600;">echo</span> <span style="color: #cc0000;">&quot;Se ha realizado todo correctamente&quot;</span><span style="color: #0000ff;">;</span>
	<span style="color: #006600;">else</span>
		<span style="color: #006600;">echo</span> <span style="color: #cc0000;">&quot;Ha ocurrido algún error&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
	<span style="color: #0000f0;">mysql_close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #006600;">else</span>
	<span style="color: #006600;">echo</span> <span style="color: #cc0000;">&quot;&lt;br&gt;error&lt;br&gt;&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
&nbsp;
<span style="color: #0000f0;">function</span> parsear_titulo<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
  <span style="color: #FF9900; font-style: italic;">//Pasamos a minusculas y quitamos las tildes</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">strtolower</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot; &quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;-&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;á&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;a&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;é&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;e&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;í&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;i&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;ó&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;o&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$titulo</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">str_replace</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;ú&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;u&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #0088ff;">$caracteres_permitidos</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">array</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;a&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;b&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;c&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;d&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;e&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;f&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;g&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;h&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;i&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;j&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;k&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;l&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;m&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;n&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;ñ&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;o&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;p&quot;</span><span style="color: #0000ff;">,</span>
  			<span style="color: #cc0000;">&quot;q&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;r&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;s&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;t&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;u&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;v&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;w&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;x&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;y&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;z&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;1&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;2&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;3&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;4&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;5&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;6&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;7&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;8&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;9&quot;</span><span style="color: #0000ff;">,</span>
  			<span style="color: #cc0000;">&quot;0&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;_&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #cc0000;">&quot;-&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #FF9900; font-style: italic;">//Si encontramos un caracter que no está en el array de permitidos, lo eliminamos</span>
  <span style="color: #006600;">for</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$a</span><span style="color: #0000ff;">=</span><span style="color: #ff0000;">0</span><span style="color: #0000ff;">;</span><span style="color: #0088ff;">$a</span><span style="color: #0000ff;">&lt;</span>strlen<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span><span style="color: #0088ff;">$a</span><span style="color: #0000ff;">++</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
     <span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0000ff;">!</span><span style="color: #0000f0;">in_array</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#91;</span><span style="color: #0088ff;">$a</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">,</span> <span style="color: #0088ff;">$caracteres_permitidos</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
       <span style="color: #0088ff;">$titulo</span><span style="color: #000000;">&#91;</span><span style="color: #0088ff;">$a</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;&quot;</span><span style="color: #0000ff;">;</span>
       <span style="color: #000000;">&#125;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #006600;">return</span> <span style="color: #0088ff;">$titulo</span><span style="color: #0000ff;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #0000f0;">function</span> comprobar_hash<span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$hash</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
  <span style="color: #FF9900; font-style: italic;">//Obtenemos la hora (la adecuamos en función de la hora del servidor a la hora de nuestro pais)</span>
  <span style="color: #0088ff;">$hora</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;H&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">+</span><span style="color: #ff0000;">6</span><span style="color: #0000ff;">;</span> 
  <span style="color: #0088ff;">$dia</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;j&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span> <span style="color: #FF9900; font-style: italic;">//Obtenemos el dia</span>
&nbsp;
  <span style="color: #0088ff;">$cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;lipman&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #006600;">switch</span><span style="color: #000000;">&#40;</span><span style="color: #0000f0;">date</span><span style="color: #000000;">&#40;</span><span style="color: #cc0000;">&quot;N&quot;</span><span style="color: #0000ff;">,</span> <span style="color: #0000f0;">time</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">1</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;Q&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">2</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;W&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">3</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;E&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">4</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;R&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">5</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;T&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">6</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;Y&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">case</span> <span style="color: #ff0000;">7</span><span style="color: #0000ff;">:</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">4</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$cadena</span><span style="color: #000000;">&#91;</span><span style="color: #ff0000;">5</span><span style="color: #000000;">&#93;</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;U&quot;</span><span style="color: #0000ff;">;</span> <span style="color: #006600;">break</span><span style="color: #0000ff;">;</span>
    <span style="color: #006600;">default</span><span style="color: #0000ff;">:</span>
  	<span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;error&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #FF9900; font-style: italic;">//RESULTADO: ///XXlipmanYY///</span>
  <span style="color: #0088ff;">$resultado</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;///&quot;</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$dia</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$nueva_cadena</span> <span style="color: #0000ff;">.</span> <span style="color: #0088ff;">$hora</span> <span style="color: #0000ff;">.</span> <span style="color: #cc0000;">&quot;///&quot;</span><span style="color: #0000ff;">;</span>
  <span style="color: #0088ff;">$resultado</span> <span style="color: #0000ff;">=</span> <span style="color: #0000f0;">md5</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #000000;">&#41;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #FF9900; font-style: italic;">//Si coincide el resultado generado y el hash pasado como parámetro, es verdadero</span>
  <span style="color: #006600;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0088ff;">$resultado</span><span style="color: #0000ff;">==</span><span style="color: #0088ff;">$hash</span><span style="color: #000000;">&#41;</span>
	<span style="color: #0088ff;">$final</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;Verdadero&quot;</span><span style="color: #0000ff;">;</span>
  <span style="color: #006600;">else</span>
	<span style="color: #0088ff;">$final</span> <span style="color: #0000ff;">=</span> <span style="color: #cc0000;">&quot;Falso&quot;</span><span style="color: #0000ff;">;</span>
&nbsp;
  <span style="color: #006600;">return</span> <span style="color: #0088ff;">$final</span><span style="color: #0000ff;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #ff0000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://delanover.com/2011/11/24/seguridad-a-la-hora-de-crear-entradas-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

