Sitecore
Directrices de Endurecimiento de Seguridad de Sitecore #2
En el pasado, el mayor concern era que la billetera fuera robada, como todo lo que forma parte de nuestra vida, ¿cierto? Y hoy en día, ¿qué crees que es lo más importante?
¡TUS DATOS EXPUESTOS! ¿Estoy en lo correcto?
Basado en eso, Sitecore proporciona mejores prácticas y recomendaciones que te ayudan a que tu instalación sea lo más segura posible, y dice:
“Sitecore está, por supuesto, sujeto a pruebas rigurosas antes de cada versión y cualquier error o amenaza de seguridad que pueda existir se corrige y elimina tan pronto como se descubra.”
Sin embargo, no pienses que Sitecore por sí solo se encargará de todo, ya que tu instalación tiene un efecto significativo en la seguridad de tu sitio web.
Dando por hecho que acabas de instalar una instancia de Sitecore, tengo la primera pregunta de seguridad para ti: ¿cambiaste la contraseña por defecto de Admin? Si la respuesta es NO, por favor continúa con los pasos a continuación, y luego podemos seguir 🙂
1. ¿Cómo cambiar la contraseña por defecto de Admin?
a. Inicia sesión en Sitecore accediendo a http://[tu-instancia-de-Sitecore]/Sitecore
b. Como ya sabrás, el nombre de usuario es Admin y la contraseña es b

c. En Sitecore Launchpad, haz clic en Control Panel

d. En el Control Panel, bajo la sección My Settings, haz clic en Change password

e. En el cuadro de diálogo Change Password, introduce tu contraseña actual y escribe y confirma tu nueva contraseña, luego haz clic en Change password

f. En el mismo cuadro de diálogo, si todo salió bien deberías ver un mensaje que dice Your password has been changed!, luego haz clic en Continue

Nota rápida: en caso de que hayas olvidado la contraseña, siempre puedes recurrir a comandos SQL como este que encontré aquí escrito por mi colega Jose Neto.
USE Sitecore_Core
UPDATE dbo.aspnet_Membership
SET [Password]=’qOvF8m8F2IcWMvfOBjJYHmfLABc=’, [PasswordSalt]=’OM5gu45RQuJ76itRvkSPFw==’, [IsApproved] = ‘1’, [IsLockedOut] = ‘0’
WHERE UserId IN (SELECT UserId FROM dbo.aspnet_Users WHERE UserName = ‘sitecore\Admin’)
Bem, supongo que ya elegiste una contraseña compleja para tu cuenta de administrador o al menos la hiciste difícil de adivinar.
Y para el post de hoy, el objetivo es deshabilitar el Auto Complete para el campo UserName en las páginas de inicio de sesión de Sitecore. ¡Vamos allá!
2. ¿Cómo deshabilitar Auto Complete para UserName?
a. Navega a [tu_Sitecore_Instance]\App_Config y busca Sitecore.config

b. Abre Notepad como Administrador, y navega a [tu_Sitecore_Instance]\App_Config luego abre Sitecore.config
c. En Notepad haz clic en Editar y Buscar, escribe Login.DisableAutoComplete y haz clic en Buscar siguiente

Como puedes ver, el valor por defecto es FALSE, y queremos cambiarlo a TRUE
d. Cambia el valor=”false” a value=”true”, luego Archivo y Guardar
¡Probémoslo! Abre un navegador y accede a http://[tu_Sitecore_instance]/Sitecore, y haz clic en el campo User name

Espera un momento, ¡el autocompletar aún está ahí!
3. Solución de problemas de Auto Complete de Nombres de Usuario
a. Volvamos a la página de Securidad de Sitecore Hardening de la sección Turn off auto complete of user names

Como muestra Sitecore, es una acción simple cambiar de false a true, y no funcionó. Así que, sigamos…
b. Navega a [tu_Sitecore_Instance]\App_Config, y abre Sitecore.config

“If true, an autocomplete="off" attribute is added on the Sitecore login forms on the /sitecore/login/default.aspx and /sitecore/admin/login.aspx
c. Abre un navegador y accede a http://[tu_Sitecore_instance]/Sitecore, clic derecho en la página y elige Inspect

d. En la caja de Inspect en la pestaña Elements, busca <form method=…. ya que se mencionó que se añade un atributo autocomplete="off" al formulario si Login.DisableAutoComplete es verdadero

¡Justo! autocomplete="off" no ha sido añadido y no funciona como se esperaba.
He repetido las mismas pruebas en diferentes versiones, y en Sitecore 7.5 release 141003 funciona como se ve en la imagen a continuación

En Sitecore 7.5, después de establecer Login.DisableAutoComplete en true ya podemos ver el atributo autocomplete="off", y el campo User Name no se completa automáticamente.
Y parece ser algo exclusivo de /sitecore/login porque /sitecore/admin/login.aspx funciona solo con tener Login.DisableAutoComplete configurado en true, como se puede notar en la imagen a continuación.

4. Solución temporal (Workaround)
Después de entender esto y probarlo exhaustivamente, llevé este tema a uno de mis compañeros que es Sitecore MVP, Rodrigo Peplau, y juntos realizamos una investigación adicional. Entonces nos dimos cuenta de que podría ser un error y creamos una solución alternativa, como se ve en los pasos a continuación.
4.1 Sitecore/Login/Default.aspx
a. Navega a [tu_Sitecore_Instance]\sitecore\login, y busca default.aspx

b. Abre Notepad como Administrador, y navega a [tu_Sitecore_Instance]\sitecore\login, luego abre default.aspx
c. En Notepad haz clic en Editar y Buscar, escribe LoginForm y haz clic en Buscar siguiente
d. Entre class="form-signin" y role="form" añade lo siguiente
autocomplete='<%# Settings.Login.DisableAutoComplete ? “off” : “on” %>'
La línea completa debería verse así
’ role="form" >
Además, como Sitecore pudo reproducir el error, se registra un fallo y deberíamos verlo arreglado muy, muy pronto.
Muchas gracias nuevamente a Rodrigo y Jason por toda la ayuda, y por supuesto a Sitecore por el soporte y feedback proporcionados.
Espero que les haya gustado, y nos vemos en mi próxima publicación!