Checklist de Segurança em Rails
|
|
Ainda no quesito, “boas práticas em Rails”, eu achei esse post: http://rubythis.blogspot.com/2006/11/rails-security-checklist.html Ele dá um checklist de segurança para Rails, à primeira vista, muito bom. Só algumas ressalvas:
No mais, a lista é muito boa! |
|
|
Check for params[:id] usage – are you sure you can trust it? Check for proper ownership of the record. Eu tinha esquecido desse detalhe na aplicacaozinha que estou fazendo, muito importante. |
|
|
Lista muito boa. Eu também prefiro protected, especialmente porque abuso de herança em controllers… Para essa lance do id, geralmente eu o substituo por alguma coisa que faça mais sentido visualmente (slugs, por exemplo, no caso de um CMS). Além de facilitar a vida do usuário, sempre me força a lembrar de tratar antes. E o hit de performance é mínimo. |
|
|
Nao entendi essa do Id, o q quer dizer? |
|
|
Pra você salvar algum registro, normalmente um dos campos é o id do registro que vc vai salvar. Pegue o exemplo do fórum… cada um que postou aqui pode editar seu próprio post. Agora imagina que ao editar seu post, vc troca o id dele e só aí submete. Se o Rails não checar se aquele post é seu mesmo antes de salvar, vc vai conseguir editar o post dos outros, aliás, de qualquer um. Por isso, vale a regra: antes de exibir ou salvar, verique se o usuário realmente pode ter acesso àquilo, afinal, um usuário esperto pode passar qq id via campo hidden ou via link (como é de praxe no Rails) |
|
|
E como faço para o Id não ficar tão vulnerável assim? |

