🔥 Apps, books, system as a service, podcast and more



Criando e Lendo Cookie


Olá pessoal, gostaria de falar um pouco de Cookie hoje com vocês. O Cookie pode ajudar muito site, praticamente 90% dos sites existentes hoje na internet utilizam a técnica. Agora, pra quê utilizar esse tipo de tecnologia? Espero poder ajudar a responder essa pergunta.

 

Requisitos:

. Ferramenta de desenvolvimento: Visual Studio.NET 2008 SP2

. Framework 3.5

. Linguagem C#.NET

 

Pequena Explicação

         O Cookie funciona para manter algumas informações pessoais do usuário, mas as que não são irrelevantes e inseguras; isto é; não deve ser colocado senha, ou qualquer outro código que faz o sistema ficar inseguro.

Geralmente é gravada uma busca no site, um produto do e-commerce acessado, um resultado gerado ou até mesmo uma configuração específica do site. Por exemplo: um site disponibiliza a dinamicidade de escolher usar uma cor azul ou verde, no meu caso escolho a azul. Se sair do site e voltar depois, o mesmo deve estar azul e não verde. Essa informação é ótima gravar como cookie e não no banco de dados. Você já acessou o site do Submarino e escolheu um produto que resolveu não comprar? Depois que voltou no site, estava lá o último produto visualizado, essa informação é gravada via cookie. Não compensa gravar em banco de dados, gerar tráfego, espaço e tudo mais.

O Cookie tem uma data para expirar e pode ser definida pelo programador, ou seja, você. Uma dica importante é, procure deixar sempre as informações dentro de forma criptografada; assim não corre tanto risco no caso das informações abertas.



Código

         Tecnicamente, mostro dois métodos escritos em C#.NET e que servem para criar e ler o cookie. Como falado anteriormente, a melhor coisa é gerar com informações irrelevantes como configuração de uma página, cores, ip, em resumo dados que não comprometem a segurança do sistema.

         Um problema que aconteceu no início do Orkut foi que, descobriram que tinham os dados dos usuários e códigos dentro do cookie, dessa forma o pessoal (mais esperto) que queria entrar no orkut do outro com perfil diferente, pegava esse código e colocava no cookie da própria máquina. Automaticamente o perfil da outra pessoa aparecia na tela.

         Qualquer coisa poderia ser feita, pois o perfil era da outra pessoa. Funcionava perfeitamente a mudança de perfil indevida, mas isso foi devido à falta de segurança colocada no cookie e informações relevantes do sistema. Com o passar do tempo eles mudaram isso.

 

Método para criar o cookie.

 

private void CriarCookie(string usuario)

        {

            HttpCookie cookie = new HttpCookie("SITE");

 

            //cria cookie com o ip da maquina

            cookie.Values.Add("IP", this.Page.Request.UserHostAddress.ToString());

            cookie.Values.Add("USERNAME", usuario);

 

            //colocando o cookie para expirar

            cookie.Expires = DateTime.Now.AddDays(365);

 

            this.Page.Response.AppendCookie(cookie);

        }

 

Code 1.1

 

Método para ler o cookie.

 

private HttpCookie ReadCookie()

        {

            try

            {

                return this.Page.Request.Cookies["SITE"];

            }

            catch

            {

                return null;

            }

        }

Code 1.2

 

         Veja o Code 1.1 e 1.2 acima. Note que o primeiro cria o cookie com o nome do SITE, coloquei [SITE] para que seja bem identificado, por exemplo: coloque o endereço do seu site (www.mauriciojunior.org).

         O segundo método, retorna um tipo HttpCookie que pega com o nome do seu site, no meu caso [SITE]. Se tivesse colocado o endereço do meu site, teria que colocar ele no segundo método.

         Posso usar as informações no site da seguinte forma. (Code 1.3).

 

 

                HttpCookie cookie = ReadCookie();

 

                if (cookie != null)

                {

                    string usuario = cookie["USERNAME"];

                    if (usuario.Length > 0)

                    {

                        txtUsuario.Text = usuario;

                    }

                    else

                    {

                        txtUsuario.Focus();

                    }

                }

Code 1.3

 

         Note que chamo o método ReadCookie() e verifico se ele é null, ou seja, se ele existe. Se existir pego com a variável cookie o nome do usuário gravado anteriormente. Depois atribuo ao campo existente na tela.

         É bem simples e fácil utilizar cookie, mas sempre coloque na cabeça a segurança dessas informações, pois é um arquivo que fica na máquina do usuário e não tem controle sobre ele.

         Bom, fico por aqui e qualquer dúvida pode entrar em contato pelo site.

 

Mauricio Junior

www.mauriciojunior.org

blog.mauriciojunior.org

Sign up to our newsletter

Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.

Top