Impacto de segurança dos modificadores de access (público, privado, interno, protegido)

Os modificadores de access de classs , propriedades ou methods em C #, Java e outras linguagens de programação realmente têm um impacto na segurança de um aplicativo? Eles também protegem contra access não autorizado de alguma forma? Ou são apenas uma ferramenta para programação clara e adequada?

Não, os modificadores de access não oferecem proteção de segurança. Eles estão lá apenas para conveniência do desenvolvedor, por exemplo, ajudam a impor boas práticas de codificação e ajudam nos padrões de programação.

É fácil acessar modificadores inacessíveis usando reflection em Java / C # e em outros idiomas.

O principal objective dos modificadores de access é impor um design específico, não qualquer tipo de segurança.

Como sempre com segurança, é necessário entender o que você está tentando proteger.

Então, sim modificadores de access são absolutamente críticos para o Modelo de Segurança Java 2, para lidar com código móvel. Se, por exemplo, não confiável pode limpar o campo java.lang.System.security , então é o fim disso.

Em outros casos, é apenas sobre a qualidade do código. As vulnerabilidades de segurança de software estão quase no mesmo nível de código de baixa qualidade. Então, os modificadores de access desempenham um papel em todos os lugares.