2013-03-20 12 views

Odpowiedz

11

to będzie działać?

params.require(:answer).permit!.except(:user_id) 
+4

Mimo że rozwiązanie jest prawidłowe, należy pamiętać (w odniesieniu do pierwotnego pytania), że jest to niebezpieczne rozwiązanie. Powinieneś stosować podejście białej listy, gdy masz do czynienia z dozwolonymi atrybutami, a nie z czarną listą. –

+6

@SimoneCarletti Istnieje wiele okoliczności, w których podejście oparte na białej liście jest naprawdę przesadne, a umieszczanie na czarnej liście nie jest w żaden sposób niebezpieczne. Nie każdy model stanowi poważne zagrożenie bezpieczeństwa. Zagrożenie należy oceniać indywidualnie dla każdego przypadku. –

4

Po prostu chcę to tutaj umieścić, biała lista nie jest sucha. Wyobraź sobie interfejs API JSON dla wpisu opartego na dokumencie, który może mieć do 100 (lub więcej) atrybutów (pary wartości klucza). Ogólnie rzecz biorąc, jedyne elementy, których potrzebujesz, to atrybuty, które mogą eskalować uprawnienia takie jak user_id.

+0

Wystarczy wyizolować białą listę z kontrolera i ponownie użyć go w wielu klasach. To naprawi problem. – IvRRimUm

Powiązane problemy