Guarde el secreto… sobre clientes, SharePoint y aceptación de código…

Hace un par de días Microsoft ha liberado una lista de chequeo para aceptación de código de SharePoint, y lo primero que he pensado es: hmmm… Microsoft le está entregando un garrote mas a clientes de esos pesados que todos conocemos, que no hacen más que discutir sobre cosas de las que no tienen ni idea apoyándose en información de la que no entienden ni jota…

El nombre en ingles del articulo es “Sample code acceptance checklist for IT organizations”, y lo puede encontrar en http://technet.microsoft.com/en-us/library/cc707802.aspx (on-line) o en http://go.microsoft.com/fwlink/?LinkId=125134&clcid=0x409 en formato Word. Un extracto en español lo puede encontrar en http://www.gavd.net/servers/sharepointv3/spsv3_item.aspx?top=0&itm=725. La lista esta divida en secciones (Seguridad, manejo de sesión, etc) y diciendo la verdad, me parece que hay algunos puntos interesantes para tener en cuenta, pero muchos caben simplemente en las “buenas prácticas” de cualquier software, no solamente de software para SharePoint, y algunas son simplemente o no realizables, o totalmente subjetivas.

Veamos, alguien sabe que es “IOSec”? estupendo que tantos levanten la mano… yo no tenía ni idea hasta que estuve googleando al respecto. IOSec es una librería para evitar vulnerabilidades de cross-site scripting (http://blogs.msdn.com/ace_team/archive/2006/03/13/550687.aspx ), que en realidad, me parece a mí, hace el mismo papel que la bien conocida clase SPEncode de WSS, es decir, codificar caracteres “peligrosos” como “<” y “>” en su equivalente de HTTP, de tal forma que no se puedan usar para inyectar scripts. Por supuesto, es una buena regla de conducta, pero supongo que es una de las primeras cosas que se aprenden a usar cuando estas programando para SharePoint… Lo mismo se puede decir de cosas tan obvias como no usar claves sin encriptar en el web.config o en cookies o en cualquier otro sitio que se pueda ver fácilmente.

Y ya que vamos por ese lado, usted que prefiere: ISO-8859-1 o UTF-8? Bueno, otra de las cosas con las que nos van a dar garrote cuando estemos entregando el famoso código. La lista recomienda usar ISO, pero lo chistoso es que todos los archivos de SharePoint, creados por Microsoft mismo, usan UTF-8. Y en cuanto a mí, si quiere quitarse los problemas de encima cuando está usando caracteres fuera la tabla ASCII extendida, no le queda más remedio que usar Unicode… a ver como se lo explicamos a nuestros clientes…

Y en cuanto a explicar, el tiempo que nos va a costar explicar porque código de validación está o no está en el lado del cliente… La lista recomienda: “Seguridad no se debe basar en validación en el lado del cliente. En lugar de esto, validación debe ser hecha al lado del servidor”. Esta es una de esas cosas que cada uno hace según su propio juicio, y que no siempre es explicable el porqué. Validaciones complicadas, en donde hay que validar contra diferentes fuentes es imposible de hacer al lado del cliente; en validaciones “comunes y corrientes”, como por ejemplo si la entrada es un numero o no, no tiene sentido hacer todo un viaje al servidor para ser realizadas, con un simple validador en el cliente es suficiente. De acuerdo, de acuerdo, ya sé que validaciones al lado del cliente pueden ser anuladas en el navegador mismo, pero atrapándo la excepción que se va a generar en el servidor es suficiente, pues sabemos (y nuestro cliente tiene que saberlo también) que para usar a SharePoint, el navegador tiene que tener el motor de Java activado… En cualquier caso, si quiere ser paranoico, valide en los dos lados, aunque yo diría mejor que hay que ser pragmático, confiar en el buen juicio del programador y rezar un par de padre nuestros a su dios favorito…

Regresando a la lista, hay algunas cosas que son incomprensibles; un buen ejemplo: “The design addresses potential canonicalization issues”. Fuera de que “canonicalization” es prácticamente impronunciable, la oración en realidad no dice nada más que “el diseño tiene que cumplir ciertas especificaciones”, sin especificar las especificaciones a especificar… otro de esos garrotes con los que nos pueden machacar la cabeza por delante o por detrás, pues no está especificado…

En cualquier caso, si le quedan cinco minutos libres, dele una leída a la lista, y, sobre todo, tenga en cuenta algunos de los puntos que menciona. Pero al final, todo este rollo es solamente para pedirles el favor de que guarden el secreto muy bien guardado y no le cuenten a nadie que esta lista existe, no sea que alguno de mis clientes se la lea, y se me ponga pesado cuando vaya a recibir el código del proyecto…

Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *