Até que ponto usar scope Session

Peguei um projeto e grande parte dos controllers estão com scope como session… Até que ponto isso pode se tornar um problema?

Está sendo feito o uso de JSF ?

Está sendo feito o uso de JSF ?[/quote]

Spring 2 + Hibernate + JSF 1.2

Está sendo feito o uso de JSF ?[/quote]

Spring 2 + Hibernate + JSF 1.2[/quote]

Tem que analisar o projeto, se foi usado o escopo de sessão, é por que os dados tem que durar mais de uma requisição isso é obvio. A não ser que tenha sido mau programado (acontece muito), vejo isso direto, atributos na sessão sem necessidade.

Quanto a ter problema, já vi muitas pessoas falando disso, mas particularmente não vejo problema algum. Vai de você analisar se estes dados que estão em escopo de sessão, realmente necessitam durar mais de uma requisição.

costumo guardar objetos em sessão quando preciso validar dados em server side, isso pode evitar catástrofes (não estou sendo eufemista) mais na frente… é um consumo a mais de memória considerado aceitável…

Não existe problema…todo o estado da execução do cliente deve ser gerenciado dentro da sessão ao invés de campos html hiden ou cookies.
Única questão a ser lembrada é o tamanho da memoria da JVM. Ou seja, vc precisa ter recursos de escalabilidade compatível com sua demanda de produção, para manter todos os usuários simultâneos.

eu já desconfiava (e apoiava) que isso era o mais correto a se fazer!!
já que voce falou então agora eu tenho certeza! xD hehehehe

eu já desconfiava (e apoiava) que isso era o mais correto a se fazer!!
já que voce falou então agora eu tenho certeza! xD hehehehe[/quote]

Sim…se vc manter o estado em campos hidden e cookies, sua aplicação ficara aberta para uma serie de atackes.
Por isso, mantenha tudo na session do usuário apenas se preocupando recursos de memoria.

foi EXATAMENTE a isso quando eu me referi acima em “catástrofes”!!!
por coincidência eu estou terminando de fazer umas modificações de segurança em um produto que a empresa onde eu trabalho comprou de outra empresa, as modificações são justamente validar códigos em server side pegando valores que eu estou armazenando em seção, eu poderia reescrever o projeto e tirar os hiddens mas ai o retrabalho seria beem maior…

meu chefe arregalou o olho quando eu mostrei vários ataques no nosso sistema em teste… e se inclinou na cadeira quando eu disse que ja tinha a solução hahahahahahaha espero que isso me renda boa$ gratificaçõe$ mais pra frente hahahahah

mais dicas - http://fernandofranzini.wordpress.com/2010/12/16/plano-de-vulnerabilidades/

Fernando, pelo o que voce observa, a maioria dos programadores estão atentos essas vulnerabilidades?
voce observa muito ou pouco código vulnerável?
os programadores mais experientes (10, 15 anos de programação) ainda cometem erros tolos de segurança (tipo esse de armazenar coisas em hidden e nao validar depois) ?

eu não quero ser pretensioso mas eu não vejo quase ninguem (pra nao dizer ninguem) que se preocupe em escrever código seguro!!!

pode ser também por causa da minha idade, 22 anos, 3 de programação, posso ter visto pouca coisa ainda masss… vejo muuuuuuuuito código inseguro por ai…

seria bom acreditar que eu realmente sou privilegiado em ter a noção de segurança que eu tenho mas eu nao conto com esse tipo de coisa :roll: eu tenho que estar errado nas minhas especulações

[quote=Der Meister]Fernando, pelo o que voce observa, a maioria dos programadores estão atentos essas vulnerabilidades?
voce observa muito ou pouco código vulnerável?
os programadores mais experientes (10, 15 anos de programação) ainda cometem erros tolos de segurança (tipo esse de armazenar coisas em hidden e nao validar depois) ?

eu não quero ser pretensioso mas eu não vejo quase ninguem (pra nao dizer ninguem) que se preocupe em escrever código seguro!!!

pode ser também por causa da minha idade, 22 anos, 3 de programação, posso ter visto pouca coisa ainda masss… vejo muuuuuuuuito código inseguro por ai…

seria bom acreditar que eu realmente sou privilegiado em ter a noção de segurança que eu tenho mas eu nao conto com esse tipo de coisa :roll: eu tenho que estar errado nas minhas especulações [/quote]
Sim…tem muita solução vulnerável sim…eu mesmo invadi varias sites semana passada e vou publicar isso no blog nos proximos dias…
Isso acontece por 3 motivos
1 - Desenvolvedor mal preparado - falta de conhecimento, arquitetura, boas praticas etc.
2 - Tempo de entrega - entrega relâmpago faz com que os desenvolvedores apenas se preocupem com funcionalidades e não segurança.
3 - Opção 1 e 2 juntas.
Se vc quer se aprofundar nisso e entregar um solução realmente profissional e segura indico leitura do http://www.amazon.com/Secure-Java-Web-Application-Development/dp/1439823510
Na verdade todo desenvolvedor java para web deveria ler esse livro antes de se aventurar no codigo…

Session é um escopo que, se usado errado (e muitas vezes é) mata a escalabilidade do sistema.

Lembre-se que aquilo que vc esta acumulando na sessao sera um custo POR USUARIO, entao pense 2x antes de guardar uma lista de 20.000 objetos ou qualquer coisa do tipo na Sessão. Não é justo culpar seu Application Server por mal gerenciamento de memoria, heap space essas coisas se vc tem um design de sistema ruim, que nao prevê essas coisas.

Repita consigo mesmo:

“Eu quero fazer sistemas pra 20-100 usuarios, ou quero um dia construir sistemas que suportem 2000-10000 usuarios simultaneos”?

Repita até que isso lhe induza a ler livros e buscar conhecimento pra segunda opção.