IIC2513-2017-2 / template

0 stars 0 forks source link

Strong Parameters: ¿necesario? #25

Closed wachunei closed 7 years ago

wachunei commented 7 years ago

¿Debería el template debería tener soporte para esto?

O depende de cada implementador filtrar los parámetros del ctx.request.body cuando se están haciendo patches a los modelos?

rodolfopalma commented 7 years ago

+1

Sería bueno para tomar conciencia. Hartos de mis grupos hacen los update pasando el ctx.request.body directamente, se los voy a comentar de todas maneras.

On Tue, Sep 26, 2017 at 15:02 Pedro Pablo Aste Kompen < notifications@github.com> wrote:

¿Debería el template debería tener soporte para esto?

O depende de cada implementador filtrar los parámetros del ctx.request.body cuando se están haciendo patches a los modelos?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/IIC2513-2017-2/template/issues/25, or mute the thread https://github.com/notifications/unsubscribe-auth/AGapl67bC8iQfXU996d21K893IupGRvPks5smTwugaJpZM4PkpkH .

-- Rodolfo Palma Otero +56998432815

wachunei commented 7 years ago

Vamos a permitir uso de lodash? en vez de seleccionar parámetros a mano

negebauer commented 7 years ago

podrían usar lodash pienso yo

raulmt commented 7 years ago

Tengo 3 comentarios al respecto:

wachunei commented 7 years ago

El caso que quiero usar de fields es curioso, porque no existe una opción símil de _.omit de lodash. Estoy haciendo registro de usuario y hay un campo role que es sensible (porque pueden poner admin y pwn3d), ¿cuál sería la mejor alternativa?

¿Qué opinan?

raulmt commented 7 years ago

Creo que la mejor práctica es white list en lugar de black list… de hecho los strong params creo que tampoco tienen algo como omit. Además de role probablemente tengas también otras cosas que no querrías que se actualicen en todo caso, como los timestamps, id y eventualmente otros atributos internos que, aunque no sean riesgo de escalamiento de privilegios, igual deberías impedirlo.

Si te da lata escribir todos los fields siempre, siempre puedes tener un método en el modelo que te los entrega/genera.