[Resolvido] Problema de Segurança CSRF

Caros bom dia.
Apresento a seguinte situação, tenho uma aplicação comercial usada por varias empresas e tenho um gestor/supervisor que faz o controlo da aplicação e uso da gestão comercial destas empresas.

O problema é o seguinte.
Acontece que se o gestor abre esta aplicação para mais duma empresa ao mesmo tempo ocorre um cruzamento das sessões do navegador e se cruzam dados entre empresas também, incluso informações do banco de dados ficam afetadas por este tema e resulta difícil assim confiar só na boa vontade das pessoas que de forma inconsciente cometem este erro. Melhor dar este trabalho de segurança ao sistema…

Minha pergunta é a seguinte.
De que forma posso evitar por “código” na aplicação ou software para que só permita uma cópia/sessão da aplicação aberta ao mesmo tempo ou pelo menos no mesmo navegador???

Alguém já passou por esta questão ou tem alguma ideia de como resolver??

Cumprimentos.

Bom dia,
Afonso, já passei por esse problema , infelizmente só consegui contornar o problema evitando que o cliente abra mais de uma aba do sistema.
Na aplicação do menu eu coloco um ajax dentro de um setInterval para verificar o token aleatório que gerei no onScriptInit do menu. se for diferente ele redireciona para o login.

Olá Wanderson.
Bom, já temos ganho a primeira parte…

Estava a aguardar por alguma resposta mas eu tenha pensado também em criar uma Cookie com um Hash que inclua alem disso o Id do navegador pois o grande problema acontece quando é aberta a sessão mais duma vez no mesmo navegado. Alias acontece no só com a mesma aplicação senão como é o meu caso que tenho vários projetos, bastaria abrir dois aplicações ou projetos diferentes de Scriptcase que a seguir vão partilhar conexão e dados.

Problema complexo sim, não sei como ninguém toma isso em conta por aqui ou se fala pouco do assunto, eu procedo de desenvolvimentos Desktop, nomeadamente Delphi/Lazarus e nunca teve esse problema, pois cada instalação reserva a memoria de forma privada e sem partilha de dados na camada da APP.

Veremos então que fazer…

Obrigado e cumprimentos.

Use Domínios ou subdominios para cada empresa. A mistura de sessão ocorre por ele abrir vários sistemas no mesmo domínio. O navegador separa sessões por domínio ou subdominio

3 Curtidas

Poxa, não sabia dessa…
Vou verificar e se é assim o problema fica resolvido. Darei feed-back então depois de experimentar…

Cumprimentos

1 Curtida

Caro, bom dia.

Confirmado, criei um subdomínio novo, instalei a aplicação e pronto.
Eliminada a situação de partilha de dados e banco de dados.

Muito obrigado.

2 Curtidas