Archive for the ‘Seguridad’ Category

La asignación múltiple

Domingo, Mayo 20th, 2007

De primero, uno sencillo y popular… ;D

Cuando realizamos una asignación multiple tal que así…

@usuario = Usuario.create(params[:usuario])

… corremos el riesgo de que un hackerillo nos pueda hacer de las suyas. ¿Como? Si esta persona, de moral descuidada, conoce campos que no debe conocer (vease uno llamado :admin, por ejemplo) podria alterar las propiedades del nuevo usuario y darse un bonito permiso de administrador en nuestra web.

Solución: Utilizar el metodo attr_protected en los atributos del modelo que queramos proteger de éstas asignaciones multiples. Cuando ésta se realice los valores de los atributos que hayamos protegido serán ignorados.

attr_protected :admin

Si por el contrario tenemos más claro que atributos podrán ser modificados podemos utilizar attr_accessible. Con este metodo los campos que no marquemos como accesibles quedarán protegidos.

Nota: Con este último metodo, los nuevos atributos entrarán automaticamente en el “grupo de los protegidos”.

Mucho más en http://manuals.rubyonrails.com/read/chapter/47