Pelo que pude perceber, o ideal seria que o session.valida gravasse o ID do usuário e não o nome para futuras consultas no BD
 
<cfset session.valida=# nonono.id#>
 
Outra coisa é criar um frame oculto e no BODY desse colocar
e nesse logout.cfm apagar todos os cookies e sessions, fazendo que mesmo quando o usuário fechar a janela o logout seja forçado.
 
sucesso.
 
Drausio.
 
 
 
 
----- Original Message -----
Sent: Wednesday, June 16, 2004 12:45 PM
Subject: RES: [cf-brasil] Ajuda Session

Olá pessoal,    

Verifiquei os e-mail que chegaram como resposta a minha pergunta de definição de session. Me parece que o cflock irá resolver, mas vejamos o que acontece:

 

 

Página 1 = usuário informa ID e Senha;

Página 2 = o resultado de uma query será inserida na variável session.valida (o resultado dessa query poderá ser 1 ou nenhum registro, se encontrar o registro, define a variável session.valida com o valor de um campo da tabela que contém o nome da pessoa, se não houver resultado da query, dá um cflocation para a tela de login)

Páginas 3, 4, 5, 6, N = Utilizam a variável session.valida para mostrar somente informações pertinentes ao usuário logado (essas informações vem de diversas querys que usam como parâmetro de busca a variável session.valida).

 

Código:

 

Apenas o trecho de código da query e definição da variável

 

<cfquery name="nonono" datasource="nononono" password="nonononono">

SELECT * FROM tabela WHERE tabela.id like '#login#' AND tabela.senha like '#pass#'

</cfquery>

 

<cfset session.valida=# nonono.nome#>

 

vem minhas perguntas:

 

Utilizando o cflock na variável, fará com que eu não acesse informações de outros usuários?

 

Porque, nas reclamações que eu tive, as pessoas somente acessam informações de outras pessoas da mesma rede sendo que eu não amarrei nada ao IP?

 

Será que se eu logar e a variável estiver com o valor correspondente ao meu ID e eu continuar a utilizar o sistema e em seguida outra pessoa logar, o sistema não vai começar a mostrar as informações do outro usuário que logou depois?

 

O sistema estava funcionando corretamente há até um mês atrás, de um dia para o outro, o sistema ficou louco, começou a dar esse problema com o Login e trocar as datas como eu havia comentado no outro tópico. O que poderia ter acontecido? Eu hospedo minha página na Porta 80.

 

 

Grato mais uma vez,

Gustavo

 

-----Mensagem original-----
De: Jefferson Petilo [mailto:[EMAIL PROTECTED]
Enviada em: quarta-feira, 16 de junho de 2004 11:22
Para: [EMAIL PROTECTED]com
Assunto: RES: [cf-brasil] Ajuda Session

 

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.

 

 

 


Jefferson de Araújo Petilo
[EMAIL PROTECTED]


KM&M Engenharia de Sistemas
http://www.kmm.com.br

 

 


De: Gustavo Ferrante [mailto:[EMAIL PROTECTED]
Enviada em: quarta-feira, 16 de junho de 2004 10:34
Para: [EMAIL PROTECTED]com
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



Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: VirusScan / Atualizado em 14/06/2004 / Versão: 1.5.2
Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/

--^^---------------------------------------------------------------
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
--^^---------------------------------------------------------------

Responder a