Idag gick säkerhetsgruppen för Ruby on Rails ut med en varning till alla som inte använder attr_accessible i sina ActiveRecord-modeller. Det är ingen säkerhetslucka i ramverket, utan mer ett vanligt misstag som utvecklare gör i sina applikationer.

Den grundläggande rekommendationen är att använda attr_accessible för alla modeller som kan ändras av användare som inte är betrodda (vanligtvis alla utom den högsta nivån i din applikation).

Lösningen är givetvis inte heller att använda attr_accessible på alla attribut vilket en hel del gör och tror att det kommer att fungera bra. Exempelvis om vi har en User-modell som har attributet :user_level. Om du sätter attr_accessible :user_level kommer du att få problem. Du behöver naturligtvis kontrollera om användaren har rätt att ändra user_level. Oftast är det smartast att utelämna attributet :user_level från attr_accessible och i controllern ange att det kan sättas om användaren har en viss behörighetsnivå eller liknande.

Läs mer på guides.rubyonrails.org/security.html#mass-assignment


Du är väl med på VIP-listan?

Om du vill ha koll på nyheter inom webbdesign och vara bland de första som hör om våra nya projekt ska du såklart göra som hundratals andra designers och företagare - gå med i vår VIP-lista.