Bom acredito que o ideal é esclarecer algumas coisas que são relevantes
nesse tipo de problema :
1 - Existem informações exclusivas que devem ser particularizadas (
dados específicos de cada usuário etc.. )
2 - Existem informações que todas ou um determinado grupo de
pessoas podem ter acesso
Situação 1
Dicas:
Além de um esquema de login consistente você deve certificar de :
-
Limpar os Cookies ( CFID, CFTOKEN ) quando o navegador for fechado
-
Usar funções de Remoção ou Limpeza de keys de Estrutura ( StructClear,
StructDelete )
exemplos:
--- logout
<cfscript >
for( key in session ) structDelete(
session , key ); //logout
</cfscript>
<cfif isDefined("Cookie.CFID") AND
isDefined("Cookie.CFTOKEN")>
<cfset lCFID = Cookie.CFID /> <cfset lCFTOKEN = Cookie.CFTOKEN /> <cfcookie name="CFID" value="#lCFID#" /> <cfcookie name="CFTOKEN" value="#lCFTOKEN #" /> </cfif> Situação
2
Em caso de conteúdo compartilhado, que
possa ser utilizado por mais do que um usuário você deve estar ligado aos
filtros que serão realizados nas consultas de banco de
dados
Geralmente essas rotinas são mais difíceis
de serem encontradas, caso o desenvolvimento dos códigos tenha sido implementado
de forma inadequada, ou seja a ausência de um where ou and numa tabela que
necessitaria de filtros para o usuário corrente poderia ocorrer isso:
-- Exemplo de um código
errado muito comum de ser encontrado em códigos
inadequados
<cfquery
name="qrLogin" datasource="teste"
maxrows="1">
select usuario, nome_usuario
from
usuarios
</cfquery>
-- cflock
etc..
<cfif qrLogin.recordcount>
<cfset Session = qrLogin />
</cfif>
Ou seja o usuário não realiza nehum filtro
que determina o solicitante da ação, então o código irá sugerir a primeira linha
que a consulta retornar... ( e no caso da ausência do maxRows ) ele vai sugerir
todos
Pode ser que esse não seja o seu caso, mas essa 2ª situação vem mostrar
que como o ColdFusion não considera o código proposto como exceção, ele aparenta
estar em "perfeito" funcionamento, quando na verdade está totalmente equivocado
em termos da lógica da aplicação.
De: Gustavo Ferrante [mailto:[EMAIL PROTECTED] Enviada em: quarta-feira, 16 de junho de 2004 10:34 Para: [EMAIL PROTECTED] Assunto: [cf-brasil] Ajuda Session Olá
pessoal,
Estou tendo problemas com a definição da sessão. Criei uma tela de login, onde após a verificação do ID e senha no banco de
dados, o sistema atribui a uma variável chamada session.valida um campo do banco de
dados. Esse campo servirá futuramente para mostrar informações pertinentes ao
usuário logado. Estava funcionando corretamente, o
sistema somente mostrava ao usuário suas informações, mas recebi algumas
reclamações de usuários, informando que quando ele loga no sistema, aparece informações de outras pessoas,
mesmo elas estando em micros diferentes. Percebi então que o sistema só trocava
informações entre usuários que utilizavam a mesma rede.
Por
exemplo: Local 1 (em
rede) Sistema utilizado
por: José e
Mario Local 2 (em
rede) Sistema utilizado
por: Maria e
João Quando o José loga, aparece as informações do
Mario ou vice-versa. Quando a Maria loga, aparece as informações do
João ou vice-versa. Nunca aconteceu do José logar e aparecer
as informações da Maria que está em outra rede. Por favor, me
ajudem. Grato mais uma vez pela atenção de
vocês, Gustavo --^^--------------------------------------------------------------- This email was sent to: [EMAIL PROTECTED] EASY UNSUBSCRIBE click here: http://topica.com/u/?b1dnXn.b7M5gI.YXJxdWl2 Or send an email to: [EMAIL PROTECTED] For Topica's complete suite of email marketing solutions visit: http://www.topica.com/?p=TEXFOOTER --^^--------------------------------------------------------------- |
- [cf-brasil] Ajuda Session Gustavo Ferrante
- Re: [cf-brasil] Ajuda Session Ronan Lucio
- RES: [cf-brasil] Ajuda Session André Luís
- RES: [cf-brasil] Ajuda Session Jefferson Petilo
- RES: [cf-brasil] Ajuda Session Gustavo Ferrante
- Re: [cf-brasil] Ajuda Session drausio
- RES: [cf-brasil] Ajuda Session Alex Hubner
- RES: [cf-brasil] Ajuda Session Marcelo de Dios Romar