Permitir que administradores sempre possam editar e-mails quando "Editar e-mail após cadastro" estiver desativado

Sim, discordo muito fortemente disso. Embora seu caso de uso específico possa parecer bastante direto para você, implementar uma substituição simples na interface do usuário para isso introduziria um risco de segurança significativo por um ganho de conveniência muito pequeno.

A fricção é um recurso de segurança!

Portanto, a inconveniência de ter que usar o console do Rails ou alternar uma configuração em todo o site é, de fato, um recurso de segurança crítico, pois atua como um “freio de segurança” e força um administrador a realizar um processo deliberado e de alta fricção para uma operação muito sensível.

Alterar o endereço de e-mail de um usuário é equivalente a entregar as chaves da conta dele, já que o novo e-mail pode ser usado para acionar uma redefinição de senha, efetivamente bloqueando o usuário original e dando ao novo dono do e-mail controle total.

Alguns vetores de ataque primários que essa fricção previne:

  • Comprometimento de contas de administrador! - Este é o risco mais significativo. Se um invasor obtiver acesso à conta de um administrador (por meio de phishing, reutilização de senha, etc.), um simples botão na interface do usuário ou alternador permitiria que ele assumisse silenciosa e facilmente qualquer outra conta de usuário, inclusive de outros funcionários; a exigência de acesso ao shell via console do Rails fornece uma forte camada de segurança.

  • Engenharia social! - Isso abre as portas para a engenharia social. Um usuário mal-intencionado poderia se passar por um usuário legítimo e persuadir um administrador a alterar o endereço de e-mail dele; novamente, o processo atual de alta fricção torna muito mais provável que o administrador verifique ou considere a autenticidade da solicitação.

  • Ameaça interna - Um administrador mal-intencionado poderia abusar desse recurso para assumir contas.

Para esse tipo de ação administrativa infrequente e de alto risco, o console do Rails é apropriado porque garante que a pessoa que realiza a ação tenha acesso ao servidor e não uma sessão comprometida. Além disso, a ação é deliberada e exige conhecimento técnico específico (e é registrada no histórico do shell).

1 curtida