Ir para conteúdo
Fórum Script Brasil
  • 0

Cookie / Session


jissa

Pergunta

Ola,

Vi um arqtigo no PHP Brasil que para utilizar o Session o usuarioque acessar os sistemas tem que estar com os cookies ativados se não o sistema não passa as variaveis sessions entre os programas, entre os problemas da Session não se apagar.

Bem..

Fora eu estar pensando seriamente em Retornar para o ASP smile.gif

?? Como faço para identificar se o cookie esta ativo ou não via PHP ??

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

Hehehehe... se apavorô ou tá decepcionado com php? sad.gif

Então, cara...acho que o jeito é gravar um cookie e testar se você consegue puxar o valor de dentro do cookie, se conseguir, os cookies devem estar habilitados...

Se não, aí tem que habilitar...sem bem eu nem sei onde habilita isso...deve ser nas propriedades avançadas da internet, mas não lembro de ter visto... rolleyes.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Cara 1º cookie é uma coisa e session é outra.

2º Tipo pra você gravar um cookie na maquina do usuario a maquina tem q estar abilitada para aseitar um cookie, agora pra ver se está ou não deve ser Javascript.

agora, session não precisa do cookie da maquina está abilitado.

para você gravar um session bastar fazer isso.

session_start();

session_register("variavel");

isso se o registros_globais no PHP.ini estiver ON.

Qualquer coisa posta ae.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

GaleguiN,

Eu não sou a pessoa indicada para discutir isto, mas segundo o rapaz que escreveu o artigo, para utilizar o Session se o cookie não estiver ativado não passara o valor para a proxima pagina, aparentemente o PHP grava este valor em cookies para poder trabalhar, se não tera que passar o valor do Session como se fosse uma querystring.

qualquer coisa da uma olhada no artigo dele, eu fales a mesma coisa lá, antes de postar aqui..

www.phpbrasil.com, logo na pagina inicial tem o artigo

Link para o comentário
Compartilhar em outros sites

  • 0

O php grava as sessions no servidor... e o cookie é salvo na máquina do usuário... então acho que não tem como alguma configuração na máquina do usuário interferir no funcionamento das sessions...

Realmente não tem nada a ver com cookies...talvez o sistema dele também use cookies e então precise estar ativado...

Mas não vejo como alguma configuração de cookies pode interferir com sessions... cool.gif

No PHP há duas maneiras de propagar a ID de uma sessão entre as páginas de uma aplicação Web: por cookies e por parâmetro na URL. A primeira é mais simples, mas quando o navegador não suportar cookies torna-se ineficiente. Nestas condições a única opção disponível é usar parâmetros na URL.

Acho que o que ele quis dizer é que utilizar cookies não é seguro porque o usuário pode ter uma configuração que não permite a sua utilização... rolleyes.gif

Link para o comentário
Compartilhar em outros sites

  • 0

não 404.. pelo que ele fala para usar o sessio precisa do cookie da uma olhada no artigo.. uma da coisas que ele fala lá é para desativar o cookie e testar o session dar o start numa pagina e ler ele em outra pg.

olha parte do arqtigo:

Retirado do http://www.phpbrasil.com artigo de Daniel Braga:

No PHP há duas maneiras de propagar a ID de uma sessão entre as páginas de uma aplicação Web: por cookies e por parâmetro na URL. A primeira é mais simples, mas quando o navegador não suportar cookies torna-se ineficiente. Nestas condições a única opção disponível é usar parâmetros na URL.

Olha os comentarios e as respostas:

Comentários de Usuários

URL? [ responder ]

publicado por Linuxman (usuário autenticado) - 2004-03-12 08:51:02

Como assim passar o id da sessão na Url?

No meu ponto de vista não é necessário passar parâmetros na Url quando se trata de session....

Acho melhor fazer a regra de negócios no próprio código..

E quanto a destruição da session, ( session_destroy() ), é melhor colocar como 'default' para realmente destruí-la..

Falow

--------------------------------------------------------------------------------

Re: URL? [ responder ]

publicado por Daniel Braga (usuário autenticado) - 2004-03-12 10:08:01

Se o navegador do usuário não estiver com o suporte a cookies ativado você não conseguirá usar variáveis de sessão na sua aplicação. Dessa forma você precisará propagar a ID da sessão pela URL, o que implica uma questão de segurança.

Para passar a ID da sessão da URL todos os links que apontam para página internas da aplicação deverão ter o parâmetro SESSION com o valor correspondente à ID da sessão na query string.

--------------------------------------------------------------------------------

Session depende de Cookie??? [ responder ]

publicado por jissa (usuário autenticado) - 2004-03-12 10:57:50

Sou Iniciante em PHP.. não sou nenhuma autoridade para discutir.. mas

Session é uma coisa Cookie é outra coisa.. ou não??

Voce pode usar o Session mesmo o cookie estando desativado e receber esta sessao em qualquer parte do codigo desde que coloque o session_start()

Passando pelo Navegador já Seria Query String.. não?

--------------------------------------------------------------------------------

Re: Re: URL? [ responder ]

publicado por Linuxman (usuário autenticado) - 2004-03-12 11:02:06

Tem razão, testei aqui na minha máquina e, realmente se o suporte a cookies estiver desabilitado no navegador, não aceitará a sessão....

Mas em relação à destruir a sessão, ainda bato o pé para usar o session_destroy() na regra de negócios do código.você tb pode utilizar o unset:

session_start();

unset($_SESSION['dados']);

--------------------------------------------------------------------------------

Re: Session depende de Cookie??? [ responder ]

publicado por Daniel Braga (usuário autenticado) - 2004-03-12 11:29:08

Sim, session e cookies são totalmente diferentes, mas o PHP usa cookies para propagar a ID da sessão.

Se cookies estiver desativado no navegador e você não passar a ID da sessão pela URL (Query String) sempre que você chamar session_start() o PHP irá iniciar uma nova sessão.

--------------------------------------------------------------------------------

Re: Re: Re: URL? [ responder ]

publicado por Daniel Braga (usuário autenticado) - 2004-03-12 11:53:04

Sim, para destruir a sessão você realmente deve usar session_destroy(), que irá excluir o arquivo da sessão no servidor. O exemplo que eu usei não tem o propósito de destruir a sessão, apenas de limpar todas as variáveis quando o tempo expirar e em seguida receber novos valores, válidos, usando a mesma ID.

No entanto, se você usar o exemplo do artigo e no lugar do session_unset() usar session_destroy(), terá que chamar session_start() novamente se quiser usar variáveis de sessão na página. Como a ID da sessão está na Query String, usando a sequência session_destroy() e session_start(), a nova sessao iniciada terá a mesma ID da sessão destruída, que é o mesmo resultado se você usar session_unset().

NOTA: se você usar session_destroy(), deverá usar session_unset() antes, senão a variável global $_SESSION continuará existindo, mesmo se a sessão for destruída.

--------------------------------------------------------------------------------

Session [ responder ]

publicado por jissa (usuário autenticado) - 2004-03-12 13:40:29

Bem.. agora fiquei preocupado com esta historia.

não com o Session ficar gravado, que seu codigo já resolveu..

Mas o Session depende do cookie para trabalhar, se o mesmo estiver desativado e eu tiver um controle com ele dentro do Sistema não funcionara, existe alguma forma de fazer sem usar as query ??

Ex. o log de um usuario, a cada pagina controlo via session se ele se logou e se pode acessar determinada area do Sistema, se o cookie estiver desabilitado tera problema em verificar em outras paginas se esta logado ou não.

--------------------------------------------------------------------------------

Re: Session [ responder ]

publicado por Daniel Braga (usuário autenticado) - 2004-03-12 13:50:44

Se os cookies estiver desabilitado e você não usar query string, sua aplicação não funcionará. O usuário não conseguirá fazer o login.

Experimente fazer um teste no seu sistema. Desabilite a função de cookies no seu navegador e veja o que acontece.

--------------------------------------------------------------------------------

Re: Re: Session [ responder ]

publicado por jissa (usuário autenticado) - 2004-03-12 14:14:51

Realmente, para tudo..

To migrando do ASP para p PHP.. mas já estou pensando em continuar com o ASP.

--------------------------------------------------------------------------------

Re: Re: Re: Session [ responder ]

publicado por Daniel Braga (usuário autenticado) - 2004-03-12 14:24:10

Nesses sistemas que há a necessidade de cookies, geralmente colocamos uma mensagem para o usuário avisando-o.

Há aplicações para ASP e há aplicações para PHP. No entanto, até agora não precisei de ASP smile.gif

--------------------------------------------------------------------------------

Duvidazinha... [ responder ]

publicado por Mozart Petter (usuário autenticado) - 2004-03-12 14:55:33

Seguinte, li o artigo e me interessei, pois nesse exato momento estou fazendo um sistema administrativo. Iniciei há pouco no PHP, li o artigo e fui verificar se o meu sistema tinha esse tipo de problemas.

Eu fiz o seguinte teste, abri o IE e entrei no sistema administrativo, salvei o URL, fechei o navegador, abri um outro e colei a URL e ele negou a entrada! Mas eu não estou usando esse tipo de sistema que você mencionou, usei apenas um session_start() no início de cada página.

Então eu pergunto, o meu sistema tá seguro?

Abraços

--------------------------------------------------------------------------------

Re: Duvidazinha... [ responder ]

publicado por Daniel Braga (usuário autenticado) - 2004-03-12 15:10:11

Mas você está passando a ID por na query string ou em cookies? Para saber se está seguro você deve experimentar passar a ID por query string.

--------------------------------------------------------------------------------

Mais uma [ responder ]

publicado por jissa (usuário autenticado) - 2004-03-12 15:41:14

To querendo migrar mesmo para PHP convertendo os sistemas em ASP que tenho, já iniciei eles.. mas me preocupo muito com segurança.

Me diz uma coisa.. ficaria seguro caso o registers_global estar ON, eu utilizar uma variavel interna para checar isto??

tipo na autenticação do login eu crio uma variavel ex. $logado="Cliente"; e apenas testar se esta Logado a cada inicio de pagina??

ou mesmo usando o define(logado, TRUE); e depois testando o if (!define(logado))..

Sem Session nem cookie, este sistema estaria seguro?

se não com testar se o Cookie esta ativo?

Link para o comentário
Compartilhar em outros sites

  • 0

não testei aqui.. to só pesquisando ainda.. smile.gif

olha achei no php.net:

Sessions and security

External links: Session fixation

The session module cannot guarantee that the information you store in a session is only viewed by the user who created the session. You need to take additional measures to actively protect the integrity of the session, depending on the value associated with it.

Assess the importance of the data carried by your sessions and deploy additional protections -- this usually comes at a price, reduced convenience for the user. For example, if you want to protect users from simple social engineering tactics, you need to enable session.use_only_cookies. In that case, cookies must be enabled unconditionally on the user side, or sessions will not work.

Link para o comentário
Compartilhar em outros sites

  • 0

A session grava um id aleatório, cara... olha o comment que eu postei lá no artigo da phpbrasil... rolleyes.gif

Vou tentar traduzir:

O módulo de sessão não pode garantir que a informação que você guarda em uma sessão só será visualizada pelo usuário que criou a sessão. Você precisa tomar medidas adicionais para proteger melhor a integridade da sessão, dependendo do valor associado com ela.

Avalie a importância da informação contida nas suas sessões e deposite proteções adicionais -  isso geralmente tem um preço, a conveniência para o usuário é reduzida. Por exmeplo, se você quiser proteger os usuários de simples táticas de engenharia social, você precisa habilitar o session.uses_only_cookies. Nesse caso, os cookies devem estar incondicionalmente habilitados do lado do usuário ou as sessóes não funcionarão.

Não sei bem o que ele quis dizer com táticas de engenharia social, provavelmente ele falava sobre lábia mesmo... Enaganar o usuário para que ele releve mais do que deveria. Se for isso mesmo... não seria uma falha no sistema e sim um usuário lorpa... rolleyes.gifbiggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Eu vi, já postei um tambem..

Tudo depende da configuracao do php.ini, se tiver setado para funcionar o Session com cookie ele vai dar problemas.. mas se tiver off ele passa normal como foi seu teste..

Eu testei aqui no Sist. que estou fazendo e passou normal tambem.

Mas é bom saber.. se um dia colocar o Sistema em um provedor e der erro na gravacao das Sessions, é que esta ON .

Valeu o tempo perdido indo atraz .. heheh

Link para o comentário
Compartilhar em outros sites

  • 0

É isso aí mesmo!

Vou tentar traduzir:

O módulo de sessão não pode garantir que a informação que você guarda em uma sessão só será visualizada pelo usuário que criou a sessão. Você precisa tomar medidas adicionais para proteger melhor a integridade da sessão, dependendo do valor associado com ela.

Avalie a importância da informação contida nas suas sessões e deposite proteções adicionais -  isso geralmente tem um preço, a conveniência para o usuário é reduzida. Por exmeplo, se você quiser proteger os usuários de simples táticas de engenharia social, você precisa habilitar o session.uses_only_cookies. Nesse caso, os cookies devem estar incondicionalmente habilitados do lado do usuário ou as sessóes não funcionarão.

Não sei bem o que ele quis dizer com táticas de engenharia social, provavelmente ele falava sobre lábia mesmo... Enaganar o usuário para que ele releve mais do que deveria. Se for isso mesmo... não seria uma falha no sistema e sim um usuário lorpa... rolleyes.gif

Sobre segurança, cara... acho que não tem problemas...

Como eu disse lá no phpBrasil... isso é muito difícil...seria mais fácil pro hacker ou qualquer outro usuário com 2ªs intenções, simplesmente entrar no servidor e roubar todos os dados das tabelas do MySQL, por exemplo..

E quanto a isso não se tem muito o que fazer a não ser contratar os serviços de um bom servidor...

Se eu estiver errado quanto a dificuldade de roubar as sessions, por favor, me corrijam, mas tudo que eu li e presenciei a respeito me diz que é bem seguro...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...