Pergunta

Eu estou familiarizado com o uso do objeto de contexto padrão de design - um leve wrapper de contexto ao redor de objetos passados entre camadas.

Se fosse para usar o objeto de contexto para controlar mancha (usuário não confiável de entrada), ou a origem de camada, eu podia ver como recebendo camada de filtrar dinamicamente, codificar, ou validar adequadamente.

Por exemplo:Um usuário envia "HTTP/HTML" dados de contexto que irá, eventualmente, ser armazenados como um arquivo no sistema.Guardar o ficheiro método foi capaz de detectar o contexto e decodificar entidades HTML, atribuir um identificador aleatório para o upload do arquivo, e associar a ação do usuário e o nome de arquivo no banco de dados.

A minha pergunta é:como é que qualquer um mais inteligente do que a aplicação de toda a filtragem, codificação e validação por padrão?O que existem casos onde conhecer o contexto de origem melhora a segurança, para além de bom de validação de entrada/codificação?

Eu estou trabalhando em Java/J2EE/Struts, mas este é generalizável para outras linguagens e frameworks.

Referências:

http://www.corej2eepatterns.com/Patterns2ndEd/ContextObject.htm

http://www.cs.wustl.edu/~schmidt/PDF/Contexto-Objeto-Modelo.pdf

http://www.owasp.org/index.php/Category:OWASP_Security_Analysis_of_Core_J2EE_Design_Patterns_Project

Com os meus agradecimentos,

-Ben

Foi útil?

Solução

Eu não sei o que macula o controle entre as camadas de aplicação é a melhor aplicação do Objeto de Contexto padrão.Como eu a entendo, um Objeto de Contexto é um objeto que fica dentro de uma única camada, e presta serviços a várias mensagens a passar através dessa camada.

Onde eu poderia ver isso sendo de utilização como um mecanismo de segurança é a criação de um explícito camada de segurança dentro de seu aplicativo.Imagine que cada usuário se autentica com o seu sistema, um Objeto de Contexto de Segurança é criado dentro da camada de segurança para o usuário.O Objeto de Contexto de Segurança contém uma lista de tudo o que permissões do usuário.A cada pedido que entra o sistema de qualquer usuário, deve primeiro passar através da camada de segurança e avaliadas de acordo com o Contexto de Segurança do usuário do Objeto.

Se o pedido for permitido, a camada de segurança passa a pilha para as camadas superiores para processamento.Se o pedido for negado, a camada de segurança retorna um erro para o usuário e o restante do aplicativo é nenhum o mais sábio.Centralizar as preocupações com a segurança dentro da segurança de camada impede a dispersão de verificações de segurança em toda a empresa e níveis de serviço.

Neste caso, o Objeto de Contexto de Segurança implementa o Objeto de Contexto padrão.O objeto de contexto é de longa duração, proporcionando um contexto de múltiplas solicitações do usuário, mas não é visível para o maior ou menor camadas na pilha de pedido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top