OWASP AppSec Brasil

A segunda edição da versão brasileira principal conferência mundial de segurança de software vai acontecer em 2010. Será nos dias 16 a 19 de novembro em Campinas e terá como keynotes:

Para mais detalhes, veja o site da OWASP AppSec Brasil 2010.

110 dias para
AppSec Brasil 2010

Links

Outros sites de interesse:
   OWASP
   Build Security In

Acesse também:
    www.sapao.net

Termos de uso

O conteúdo deste site está sujeito à licença Creative Commons.

Creative Commons License

Atividade recente no site

Início‎ > ‎

Usar classes não desserializáveis

Mesmo que sejam implementadas as recomendações do item “Usar classes não serializáveis”, a classe ainda pode ser desserializável, o que permitiria que um adversário crie uma seqüência de bytes que corresponda a uma instância de sua classe. Isto pode ser perigoso pois o objeto desserializado pode estar num estado inconsistente ou num estado que esteja em desacordo com seu invariante (o conjunto de regras, explícitas ou não, que define os possíveis estados que o objeto pode assumir). Pode-se imaginar a desserialização como um construtor público para a sua classe, só que é um construtor que não permite o controle dos valores atribuídos às variáveis.

É possível prevenir, tornando a classe impossível de desserializar uma seqüência de bytes em uma instância da sua classe. Isto pode ser feito pela definição de um método de desserialização conforme mostrado abaixo. Este método é declarado como final para evitar que seja redefinido em uma subclasse, conforme o item “Tornar todos os métodos e classes “final””.

private final void readObject(ObjectInputStream in)
throws java.io.IOException {
        throw new java.io.IOException("Class cannot be deserialized");
}