Hacker News new | past | comments | ask | show | jobs | submit login

Here's what happens, loosely

We have a form with the fields firstname, surname and date_of_birth. cool. user submits the form. Rails takes the post data and puts in in a data structure called params

Now, at the backend we need to update our database with this new info. Rails allows us to write

    user.update(params)
    user.save
and the database will then be updated with all three fields from the form. nice. except... (you can see where this is going)

I alter the form and add another field, say is_admin and set the value to true. Now, if the database has a corresponding field, that also gets updated with the value I've posted. uh oh.

Rails does have the ability to say

    attr_protected :is_admin
which will stop this. It also has a config option to effectively disable mass assignment. Unfortunately it's one of those things that everyone knows about but often seems to be overlooked/forgotten



Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: