Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou desenvolvendo um sistema de login bem básico mas encontro problemas.
Ao digitar login e senha é chamado um arquivo (acoes.php) aonde ele acessa a ação login.
Oque acontece é que eu não consigo retornar um valor pela sesao se não colocar o start_session() na página de acoes, mas quadno coloco ele retorna o valor porem um erro. Já tentei colocar o statr_session() fora do case antes do include mas nada acontece. Alguem pdoeria dar uma força, ficaria muito grato.
acoes.php
/applications/core/interface/imageproxy/imageproxy.php?img=http://img837.imageshack.us/img837/9058/acoes.gif&key=8ee4415a3ac120f214725478b4116110a33c0f479b2a42a1ed6617b0a8a65022" alt="acoes.gif" />
página seguinte:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img208.imageshack.us/img208/5789/outra.gif&key=d58b15a23c27aee7b21fe58d4976e7b5397f830e4be2e3a3019a0724f875f9bf" alt="outra.gif" />
erro retornado:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img810.imageshack.us/img810/9535/erro.gif&key=359af54a7a2193d5821e64b37703af745d4618e359a42c19e9cc4039d9a470c3" alt="erro.gif" />
Só uma dica: sugiro que utiliza cookies para sistemas de login... para utilizá-los faça o seguinte:
setcookie('nome', 'valor', time() + (3600)); // onde o 3600 representa os segundos para o cookie expirar. Nesse caso, pus uma hora...
// para ler, você tem que atualizar a página, ou seja, você não pode mandar um cookie e o ler ao mesmo tempo...
$cookie = $_COOKIE['nome'];
Desculpe não poder te ajudar sobre as sessions, mas não trabalho muito com elas...rs
Desculpe não poder te ajudar sobre as sessions, mas não trabalho muito com elas...rs
É bom começar usar SESSION... cookie não é muito seguro...
verneklavor, veja o link passado pelo Beraldo, esqueça cookie, a não ser para outro motivo, fora de sistema de login.
Alaerte, por que não são seguros?
Assim como cookies, sessions podem ser roubadas. Elas só duram até o usuário fechar seu navegador e acho um pouquinho mais difícil de usar...
Você mesmo respondeu sua perunta... SESSION termina quando o navegador for fechado, ou quando você destroi ela, por meio de uma página de logout...
Cookies são gravados na própria máquina do usuário, só por este fato, já da pra perceber sua vulnerabilidade, porém, você pode codificar o valor de um cookie, criptogravar o seu valor etc, isso dificulta o acesso aos valores do cookie, existem mais vulnerabilidades para o cookie.
"só por esse fato, já dá para perceber a vulnerabilidade". Desculpe minha ignorância, mas eu não percebi...
Como eu havia dito, ambos sessions e cookies podem ser roubados, ou seja, visualizados pelo usuário. Além disso, claro que eu não armazenaria a senha dele no cookie, apenas seu nome de usuário, por exemplo...
Ainda não vi nenhuma vulnerabilidade... se você puder me explicar alguma, ficaria extremamente grato, pois assim migraria imediatamente de cookies para sessions...
Aqui tem uns exemplos, nem precisa usar php pra poder pegar cookie...
:seta: http://www.chmod.com.br/vb/showthread.php?9818-Clonagem-de-cookies-Side-jacking
Só pelo título do tópico você já imagina...
outro:
:seta: http://www.chmod.com.br/vb/showthread.php?5714-Como-pegar-o-cookie-simples-dos-foruns-phpBB
agora, como ele clonaria um session ??...
Migre para session amigo !
com sniffer pouco importa se é cookie ou session. todo tráfego é capturado.
Não acho cookie inseguro.
Tanto session quanto cookie podem ser inseguros. Tudo depende de como são usados.
Eu não teria paciência de ficar logando sempre aqui no forum. Viva os cookies.
E participo desde 2006. Nunca roubaram minha senha. Porém, se rodassem um sniffer no server, pouco importa se é cookie, sessin, SSL ou não, o cara teria TODO o tráfego da rede
você pode criar chaves temporárias de autenticação, misturando a senha do usuário com outros dados. Mas uma coisa é importante: não coloque a senha no cookie, mesmo criptografada ou num hash MD5, SHA-1 ou outro. Acesso a hashes de senha já é inseguro; acesso à senha é intolerável
Neste, caso, acho ele inseguro para sistema de login.
Na verdade, session também é um cookie, só que de uma forma automatizada, para cada session é criada um ID, que por sua vez é armazenado no cookie... só que você nem percebe... justamente, que se usar o sniffer, você obtem todo o tráfego, porque session também é cookie, porém, acredito mais seguro...
Boa Noite pessoal...
Aproveitando o post, pra não precisar de abrir outro..
Como é feito aquele esquema do usuario sair da pagina e não deslogar, tipo gmail, orkut.
Acho que com o PHP é possivel, pq o facebook é feito com php e é assim tbm.
É com cookie?
Vlllw
>
Como é feito aquele esquema do usuario sair da pagina e não deslogar, tipo gmail, orkut.
Acho que com o PHP é possivel, pq o facebook é feito com php e é assim tbm.
É com cookie?
exatamente.
só usar cookie, definido o seu tempo de existência
>
>
Como é feito aquele esquema do usuario sair da pagina e não deslogar, tipo gmail, orkut.
Acho que com o PHP é possivel, pq o facebook é feito com php e é assim tbm.
É com cookie?
exatamente.
só usar cookie, definido o seu tempo de existência
Vlw Beraldo...
E como poderia ser feito integrado com SESSION?
Poderia dar um exemplo simples e pratico?
não precisa integrar com session. pode usar só cookie
não vejo por que integrar cookir e session
Entendi Beraldo, e sobre a questão da segurança?
Cookie tem alguma brecha de segurança se comparando com o session?
Como você disse não precisa configurar nada, basta usar o cookie?
sobre segurança é só ler os posts acima. Tudo pode ser seguro ou inseguro. Depende de como se usa
não tem que configurar nada a mais para usar cookie
Em resposta à Ronny Santana:
Ronny, é impossível (tenho quase absoluta certeza) fazer com que as SESSIONS durem mesmo depois que o usuário feche seu navegador, ainda mais desligue seu computador. Com cookies, tudo fica muito mais fácil. Você define o tempo que ele deve durar e isto apenas será quebrado caso você "exclua" o cookie com um código ou o usuário exclua seus cookies, o que é muito improvável, já que como você mesmo mencionou muitos sites usam cookies...
Para usá-los, faça assim:
<?php
// armazenando cookies
$tempo = time() + 3600;
setcookie('nome do cookie', 'valor do cookie', $tempo);
/* esses são apenas os parâmetros principais em minha opinião. O tempo é em timestamp, então
* deve ser algo do tipo time() + 3600, como mostrado no exemplo, onde 3600 é o tempo que o
* cookie deve continuar existindo, em segundos; caso este seja nulo ou não seja especificado,
* o cookie será excluído assim que a sessão acabar, ou seja, assim que o usuário fechar seu
* navegador. Para lê-lo, utilize o código abaixo, porém preste atenção pois o cookie apenas
* será disponível apenas a página seja finalizada, ou seja, não há como enviar um cookie e
* lê-lo ao mesmo tempo...
*/
$cookie = $_COOKIE['nome do cookie'];
Bem simples, sem ter que enviar nenhum comando anterior. Na definição do tempo, você também pode utilizar a função strtotime(), assim como o exemplo:
$daquiUmaSemana = strtotime('+ 1 week'); // se você usar isso como o $tempo, aí o cookie terá uma semana de duração
Sobre segurança, basta ler esse tópico e verá como se proteger adequadamente. Lembrando o que o Beraldo disse: nunca insira senhas em cookies; insira algo como o nome de usuário da pessoa para posteriormente poder usar essa informação para checar se ela está logada, ou coisa do tipo.
veja:
http://forum.imasters.com.br/index.php?/topic/342563-dicas-para-uso-de-variaveis-de-sessao/