Prácticas para un desarrollo más seguro en SharePoint

La seguridad es uno de los puntos críticos a la hora de desarrollar una aplicación web y es algo que no debemos pasar por alto.

Aunque no se tenga mucha experiencia en seguridad, existen unas medidas básicas que se deberían adoptar para proteger cualquier aplicación Web. Puesto que SharePoint es principalmente una herramienta de desarrollo de intranets corporativas, muchas veces los desarrolladores no prestamos la suficiente atención al tema “Seguridad”.

En este post vamos a repasar algunas pautas para dotar a nuestro portal SharePoint y nuestros desarrollos de un mínimo de seguridad.

Existen algunas prácticas muy sencillas que pueden hacer que nuestro desarrollo sea más seguro:

  • En primer lugar, la protección de los parámetros de entrada. Una de las técnicas para pasar parámetros por ejemplo de un WebPart a otro es el uso de querystring.  Una manera sencilla de proteger estos parámetros es obtener la variable de la siguiente forma.HttpUtility.HtmlAttributeEncode(Page.Request[“parametro”])Esto nos protegerá de la inyección de javascript cuando queremos por ejemplo construir un HTML que se mostrará en la página con los parámetros recibidos.
  • No debemos abusar del uso de SPSecurity.RunWithElevatedPrivileges. Muchas veces los desarrolladores tendemos a ir por el camino sencillo, el que “siempre funciona” elevando los permisos para realizar cualquier operación, por ejemplo sobre una lista.  De este modo estamos otorgando permisos innecesarios a los usuarios. Solo debemos elevar los permisos cuando realmente se necesiten permisos especiales.
  • SharePoint tiene numerosas puertas de entrada que cualquier persona con algún conocimiento podría utilizar para acceder a páginas de configuración o a información confidencial.  Cuando desarrollamos un portal público debe de estar activa la característica ViewPagesLockDown. Esto evitará que se puedan acceder a las url internas de SharePoint desde fuera.

Evidentemente estas son solo algunas prácticas que se pueden utilizar para hacer nuestro portal un poco más seguro. Lo más importante que debemos extraer de este post es que cuando empecemos a desarrollar le prestemos un poco de atención a la seguridad de nuestros desarrollos y del portal en general y que no debemos confiar en la bondad de los visitantes del sitio.