Llevamos unos meses trabajando para sacar una nueva web de formación. www.formaciontop.com donde puedes encontrar información de cursos, masters, oposiciones, carreras universitarias, academias y cursos subvencionados. Esta web ha sido desarrollada por la incubadora de negocios startupdot.com y esperamos que tenga un exito inmediato. Tiene un diseño muy actual y de gran usabilidad. Espero que si alguno tiene intención de hacer algun mba acceda a esta pagina y le sea de gran ayuda.
Category Archives: Internet
FormacionTop.com, nueva web de cursos, masters, oposiciones, carreras universitarias, academias y cursos subvencionados
Herramienta para saber el puesto en google: Free Monitor for Google, para conocer el posicionamiento google
Quien quiere saber de una forma rápida para unas palabras claves su posicionamiento en google, existen algunas herramientas gratuitas de las cuales se puede sacar esta información. En la empresa de desarrollo web DRG Soluciones, hemos desarrollado una herramienta en lenguaje php para obtener este tipo de estadisticas, aunque realmente, la herramienta hace que puedas generarte tus propias palabras claves y te genera codigo html para subir a tu servidor y optimizar tu web. Es decir, que cualquier usuario podria definir sus palabras clave, y subirlas a su servidor, y tener un control de las estadisticas para esas palabras clave.
Pero como no es gratuita .. siempre hay herramientas gratuitas para estos menesteres. Para quien lo no conozca, Free Monitor for Google, es una herramienta de la empresa CleverStat. Te permite introducir url de la web a estudiar y palabras clave. Estas palabras se pueden importar de un archivo de texto.
Sobre las urls a buscar, puedes meter una url especifica como www.franquiciando.com o un dominio entero franquiciando.com, para seleccionar todas los dominios de franquicias de esta web.
Las estadisticas se puede configurar para saber el numero de posiciones en las que buscar. Se recomienda no poner un número muy elevado, ni ejecutar esta aplicacion el mismo dia con muchas urls o muchas palabras de búsqueda, ya que google «capa» las IPs de las que esta recibiendo muchas solicitudes, y entonces cuando entres, tendras que meter un captcha.
Puedes tambien seleccionar el pais de google sobre el que buscar, si hacerlo en el .com o en el .es por ejemplo.Estas estadisticas son facilmente exportables a un excel.
Me parece una herramienta muy util para llevar un control del posicionamiento google de las webs.
¿Gmail no carga bien desde que salio Google Chrome?
Pues es algo que me pasa desde hace 2 dias en internet explorer 7 y en mozilla firefox. Cuando me logeo en mi cuenta de gmail, se queda la pantalla en blanco con mi email y la barra de estado cargando …. y luego me aparece la pantalla que refresque la pantalla.
Una vez recargas la pantalla no hay problema y te entra sin problemas .. pero es que lo raro es que en Google Chrome, nunca me pasa esto.
Ummmm realmente estara gmail optimizado para la maquina virtual de javascript que han desarrollado para Google Chrome?? lo han hecho a proposito para que la gente se pase al nuevo navegador??
Buffff me atacan muchas dudas … ¿no os ocurre a vosotros?
Google Chrome y las opciones para desarrolladores
Bueno, decir que el tan esperado google chrome a mi me ha defraudado un poco. Es cierto que tiene cosas que estan bien (pantalla casi completa, pestañas arriba del todo) pero me sigo quedando con el mozilla firefox.
He estado probando una parte que es muy importante para los desarrolladores, yo diria que practicamente imprescindible en estos momentos para los desarrollos web. Es la herramienta de «opciones para desarrolladores». Yo la comparo con el Firebug , que es un plugin de mozilla firefox que creo que es imprescindible para cualquier desarrollador web.
He probado con la pagina de cursos www.topformacion.com y con la pagina de franquicias www.franquiciando.com y la verdad que no me aparecia ningun fallo javascript (jejejeje que buenos somos) y he estado probando la carga de las paginas, y como acceder a los elementos. La verdad que en firebug aparecen errores o warnings de javascript, mientras que en la consola de errores de google chrome no aparecen. Con lo cual .. empieza ganando firefox.
Pueder ir recorriendo los elementos del html y del javascript y cambiar sus valores .. vamos .. lo mismo que hace el firebug. Me gusta que hay una caja de buscar terminos, cosa que le falta al firebug … aunque bueno .. no funciona muy bien, pero es una cosa que era muy necesaria.
Puedes elegir «resources» y ves por tiempo o por carga los elementos lo que han tardado en cargar. Esto siempre me parece muy interesante, y el mozilla lo tiene igual si instalas el pluging «Load Time Analizer». Aunque me gusta que venga por defecto.
La visualización de codigo fuente es buena, aunque la separación por colores no es muy de mi agrado. Preferiria unos colores más fuertes que llamen más la atención. Pero bueno .. supongo que esto serán distintos gustos de usuario.
Ahora vemos el debugger de javascript .. y horror!!!!! es un debugeador de consola!!!!! nada grafico como el firebug. Madre mia .. quien se aprende ahora a debugear en esto!!!! os paso los comandos a ver si alguno lo encuentra sencillo y usable.
- args
- break [location] <condition>
- break_info [breakpoint #]
- backtrace [from frame #] [to frame #]
- clear <breakpoint #>
- continue
- frame <frame #>
- help [command]
- locals
- next
- print <expression>
- scripts
- source [from line] | [<from line> <num lines>]
- step
- stepout
Finalmente la Administración de Tareas, la cual si que me parece algo muy interesante y que han acertado. Es algo que se echan en falta que pueda ver el uso de cpu de cada pestaña. Punto para google chrome!!!!!!!
Bueno .. cada uno es libre de hacer lo que quiera .. yo para desarrollar y depurar javascript .. me sigo quedando con el firefox. Ha dia de hoy .. ha ganado la batalla al depurador de javascript de google chrome.
WordPress vs Blogger en posicionamiento google
Voy a dar mi opinion sobre la posibilidad de abrir un blog para posicionar algunos temas en google. ¿en cual de las grandes comunidades de blog lo abrimos?¿lo abrimos bajo nuestro dominio o lo abrimos en un subdominio de estos?
Bueno … podemos ver en este articulo de codigogeek como es mejor wordpress.
A mi personalmente, en cuanto a usabilidad, me gusta mucho mas wordpress. Y encima posiciona en google mucho mejor!!!!!
Asi que ya sabeis .. si quereis abrir un blog, paradojicamente, posiciona mejor el que no pertenece a google.
Sobre si posiciona mejor en un subdominio de wordpress o en uno propio .. pues actualmente estamos haciendo unas pruebas. En cuanto podamos sacar conclusiones lo pondremos por aqui.
Encontrar un buen dominio .com o .es
Ultimamente es practicamente imposible encontrar algun dominio .com o .es aceptable. No soy domainer, ni quiero serlo. Simplemente quiero que cuando tenga una idea, y busque un dominio, no sea practicamente imposible encontrar un dominio libre. Y lo que más me jode de todo, es que la mayoria de los dominios que busco ¡¡no tienen ninguna web!!
Hablando en plata, están en mano de los domainers como inversión. Cosa que me parece totalmente aceptable, pero que no me gusta. Ahora que está muy de moda (desgraciadamente) el tema de las inmobiliarias, este tema me recuerda a los inversores inmobiliarios que tenian muchos pisos y se lucraban vendiendolos, o los tenian sin ocupar, cuando la mayoría de los mortales que queriamos un piso, teniamos que pagar el oro y el moro para poder comprar algo donde meternos. Ahora el mercado esta de capa caida, y seguro que muchos de estos inversores inmobiliarios se han pillado algún dedo que otro.
¿pasará esto con los dominios? Hombre .. yo creo que no es comparable. El simple hecho que un dominio cuesta infinitamente mucho menos, hace que puedas tener 1000 dominios a tu nombre, y no te suponga un gasto considerable.
Acabo de ver en el blog de Carlos Blanco, que habla que los dominios .es han llegado al millon de registros y que él calcula que 300 mil están en manos de domainers.¿ y cuantos en el .com? Yo creo que un numero infinitamente mayor … ¿50%?¿70%?
Solo pensar que la mitad de los dominios .com pueden estar «olvidados» en manos de algunos, cuando hay gente con ideas con ganas de aportar algo a la red, que no encuentran dominios aceptables.
A mi personalmente me molesta bastante ….
Spam desde un servidor con dm.cgi
Se acaba de caer nuestro servidor, y no sabiamos porque se producia esto. Hemos estado mirando lo logs del sistema y los procesos que estaban corriendo, y nos hemos encontrado unos procesos que estaban comiendose toda la memoria. Este proceso era dm.cgi
Hemos visto que habian subido un cgi a nuestro servidor para realizar spam desde nuestro server.
Para solucionarlo:
1.- Borrar del directorio cgi-bin del dominio atacado todos los ficheros .
drwxrwxrwx 2 xxx psacln 1024 Jun 17 12:00 log
-rw-r–r– 1 xxx psacln 1456 Jun 17 12:00 config.txt
-rwxr-xr-x 1 xxx psacln 74405 Jun 17 12:00 dm.cgi
-rw-r–r– 1 xxx psacln 172 Jun 17 12:00 fff.html
-rw-r–r– 1 xxx psacln 568 Jun 17 12:00 from.txt
-rw-r–r– 1 xxx psacln 8 Jun 17 12:00 letter.txt
-rw-r–r– 1 xxx psacln 0 Jun 17 12:00 macros1.txt
-rw-r–r– 1 xxx psacln 570 Jun 17 12:00 replyto.txt
-rw-r–r– 1 xxx psacln 17 Jun 17 12:00 subject.txt
-rw-r–r– 1 xxx psacln 2450181 Jun 17 12:08 mailbase.txt
drwxrwxrwx 2 xxx psacln 1024 Jun 17 12:45 sys
2.- Suprimir la ejecución de cgi en ese dominio (Nosotros lo hemos desactivado a traves del panel de control de Plesk)
3.- Cambiar y fortalecer las contraseñas del usuario de ftp del dominio atacado.
Proteger pagina web contra SQL Injection
Creo que los programadores debemos cuidar un poco más nuestro código, puesto que todo el mundo sabe lo que SQL Injection, pero pocos son los que toman medidas oportunas para evitarlo.
Para introducir un poco, decir que hay dos tipos de ataques a una pagina, por software y por hardware.
En cuanto a los ataques por Hardware, se recomienda tener actualizado el sistema operativo, servidor web y servidor de base de datos. Tener siempre los ultimos parches instalados para evitar, en mayor medida, el ataque por la via del servidor.
Si nuestra pagina está alojada en un hosting .. es problema del ISP el mantener estos programas actualizados. En caso de tener un servidor propio o un servidor dedicado .. tenemos que tomar nosotros estas medidas. Los ataques con estas técnicas no suelen ser un tanto por ciento muy elevado.
El ataque por «descuidos» en nuestro software es bastante mas común. A continuación detallo algunos pasos para evitar, en mayor medida, los ataques por SQL Injection:
1.- El usuario de acceso a base de datos debe ser un usuario con privelegios unicamente para hacer INSERT, UPDATE, DELETE y SELECT.
El otro dia solucionamos un problema a un cliente pq le ejecutaban un procedimiento …
pagina.asp?id=909;DECLARE%20@S%20VARCHAR(4000);
SET%20@S=CAST(0x4445434C415245204054205641524348415228323535292C40432056
4152434841522832353529204445434C415245205461626C655F437572736F722043555253
4F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736
F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E69
6420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220
F7220%20AS%20VARCHAR(4000));EXEC(@S);–
Esto no lo podemos permitir.
2.- Proteger toda entrada de parametros a traves de una función que deseche posibles palabras «peligrosas».
En java no tenemos problema ejecutando todas las consultas con PreparedStatement.
En asp podriamos tener una función de la siguiente forma:
<%
function validar_entrada( input )
palabras = array( «script», «select», «insert», «update», «delete»,»drop»,»DECLARE»,»declare»,»EXEC»,»exec» ,»VARCHAR»,»varchar» , «–«, «‘» )
validar_entrada = True
if ( instr( 1, input, palabras(i), vbtextcompare ) <> 0 ) Then
validar_entrada = false
exit function
end if
Next
end function
%>
En php, podemos utilizar la funcion addslashes para evitar esto, o incluso, utilizar la funcion descrita en asp .. pero transformada para php
<?
function prepararValorSql($cadena) {
return preg_replace(«/(-)+/», «-«, !get_magic_quotes_gpc() ? addslashes(trim($cadena)) : trim($cadena));
}
?>
Espero que con estas pequeñas pautas, elimineis el 90% de ataques contra vuestras paginas.
Proteger formularios contra robots y web spam
Todo el que tenga formularios en internet, más tarde o más temprano, tendrá robots que le envian información para intentar introducir en su base de datos urls, etc.
Un sistema bastante común es el de Captcha, que es la tipica imagen distorsionada, el cual no me gusta como usuario, ya que es obligar al usuario a utilizar un campo más de un formulario, lo que puede hacer perder un posible usuario (a mi me pasa 😉 ). Ademas, los programas OCR reconocedores de imagenes, hacen que las imagenes sean tan distorsionadas que son incluso complicado para un humano reconocerlas. Como veis, no es un campo que me guste, con lo cual, quien quiera proteger sus formularios de esta forma, pues tiene multiples módulos para generar estas imagenes, yo prefiero otras formas.
A continuación, paso a detallar posibles metodos anti-robot los cuales he utilizado para proteger los formularios. Cuanto más pongas, mas dificil tendrá el robot introducir su porquería. Algún ejemplo estará realizado en php, aunque la idea se puede exportar a todos los lenguajes. Para entendernos mejor, llamaremos Pagina1 a la pagina del formulario y Pagina2 a la pagina donde se realiza la operacion de negocio de ese formulario(envio correo, guardar en base de datos, etc).
1.- Realizar comprobaciones de los datos en el lado del cliente y en el lado de servidor.
Obviamente, solemos realizar las comprobaciones Javascript en el lado del cliente para que el «usuario normal» no introduzca datos erroneos en la Pagina1. Los robots se saltan esta limitación, asi que debemos comprobar en el servidor, que todos los datos tienen el formato correcto, en la Pagina2.
Por ejemplo, si pedimos el telefono o código postal, pues en el lado del servidor debemos comprobar que nos llega un dato numérico , o la misma comprobación que hagamos en javascript.
2.- Controlar la sesión del usuario.
Controlar mediante sesiones, que el usuario que entra en la Pagina2 viene exclusivamente de la Pagina1. Es decir, tenemos una variable que guardamos en la sesion del usuario, por ejemplo, con valor 1, y cuando leamos esa variable en Pagina2, pues si tiene ese valor es que viene de Pagina1, y modificamos su valor para que tenga que volver a pasar por el formulario. De esta forma, tambien limitamos que el usuario pueda dar 100 veces a refrescar la página, y nos introduzca sus datos 100 veces.
3.- Introducir un campo oculto en el formulario con la una clave dinámica y encriptada.
Podremos poner en el formulario, un campo «hidden» cuyo valor sea una clave encriptada que nosotros sabemos. Si esta clave es dinámica, pues mucho mejor.
Por ejemplo,
<input type=»hidden» name=»clave» value=»<?=md5(‘CLAVEqueQueremos’.$datodinamico.$numeroaleatorio)?>»
Es decir, en este ejemplo, nos generamos una clave con los siguientes campos:
– CLAVEqueQueremos: Una cadena de texto que nosotros definimos y que solo nosotros conocemos.
– $datodinamico: algun dato que identifique al formulario y que sea dinamico, si por ejemplo estamos haciendo una compra de un producto, pues el productoId sería la opción
– $numeroaleatorio: Número aleatorio que generamos en cada petición y que podemos pasarselo a la Pagina2 en otro campo hidden o guardarlo en una tabla o fichero temporal para consultarlo desde Pagina2.
Una vez hecho esto, se encripta para que el resultado visible en el navegador sea una cadena de texto extraña. Aquí he puesto como ejemplo el metodo de encriptación md5, pero se puede utilizar cualquier método de encriptación.
En Pagina2, volvemos a generar esta clave, la encriptamos, y comprobamos que es lo mismo que nos viene de Pagina1 del campo «clave».
4.- Introducir un campo oculto por css con nombre email
Introducir un campo cuyo nombre contenga la palabra «email», y ocultarlo con estilos(style=»display:none»). En el value del campo, introducimos un valor que no sea un email, ya que está comprobado que los robots rellenan con un email aleatorio todos los campos que encuentran con ese nombre. De esta forma, en Pagina2, podemos comprobar que ese campo que nos llega no tenga formato de email.
Ejemplo:
En Pagina1:
<input type=»text» name=»emaildementira» value=»A» style=»display:none»>
En Pagina2:
Comprobamos que en el campo «emaildementira» no nos llega una @.
Con todo esto, lo que haremos será entorpecer un poco más los robots de envio de porqueria con formularios. Esto evoluciona cada día, con lo cual, no es una panacea, pero por lo menos se lo ponemos más dificil a los spam-robots. Por lo menos que el programador que lo ejecuta … que se lo curre un poco más.
Si teneis algún otro método que no conozca .. aquí estamos para conocerlo.
Si alguno tiene muchos problemas de realizar estos pasos, que me mande un email que se lo explico con más detalle.
Espero que os sirva.
Actualizacion del pagerank de google en abril de 2008
Pues he leido que google habia actualizado los pagerank en abril de 2008, y me han sorprendido varias cosas.
Segun la definicion de pagerank, es el numero de enlaces «de calidad» a cada pagina, por decirlo de alguna forma resumida.
Me sorprende que este blog, sin tener casi enlaces, tenga un PR4, mientras que otras paginas con bastantes mas enlaces y visitas, tienen PR3 o PR2, como www.franquiciando.com , www.akademias.com o www.guarderiasenmadrid.com
Con esto sigo con mi teoria de google, que no entiendo muy bien … es decir .. ¿en que se basan?¿realmente tiene sentido fijarse en el PR?
Yo creo que no es un factor muy influyente … pero bueno .. cada uno que piense lo que quiera.