Se excluirmos os cookies de um site, ainda podemos fazer o login sem fazer login novamente
O facebook é codificado em PHP e o PHP foi lançado em 1994. Mas no PHP, há uma desvantagem, ou seja, se desativarmos os cookies (digamos no Facebook), o servidor do Facebook esquecerá a pessoa que se conectou anteriormente e me levará isso página quando esse aplicativo foi iniciado pela primeira vez. Mas em Java (JEE Edition, lançado em 1999), temos uma técnica chamada “Codificação de URL” com a qual ainda podemos fazer o login, mesmo depois de desabilitar os cookies. Então, vamos mostrar isso a vocês, por meio de codificação.
Existem dois vídeos para descrevê-lo.
No primeiro vídeo, apagamos os cookies do Facebook e tentamos fazer o login novamente. Mas ele redirecionou para aquela página, quando o aplicativo foi lançado pela primeira vez. E como você pode ver no vídeo, o nome de usuário e a senha são visíveis para mim. À medida que excluímos os cookies, o servidor esqueceu quem você é e o redirecionou para essa página quando o aplicativo foi iniciado pela primeira vez.
Agora, vamos mostrar isso usando Java. Aqui está um programa simples sobre hit-counter e a partir disso vamos relatar, o que está acontecendo por trás do facebook. Também veremos a modificação neste código.
<% @page contentType = "text/html" pageEncoding = "UTF-8" %>
<!DOCTYPE html>
<head>
<meta http - equiv = "Content-Type"
content = "text/html; charset=UTF-8">
<title>Session Counter</title>
</head>
< % int count
= 0;
HttpSession sess = request.getSession();
System.out.println("session object id is: " + sess.getId());
System.out.println("session object is new: " + sess.isNew());
String name = request.getParameter("btn");
if (name != null) {
if (sess.getAttribute("countval") != null) {
if (name.equals("Next")) {
count =
Integer.parseInt((String)sess.getAttribute("countval")) + 1;
}
else {
count =
Integer.parseInt((String)sess.getAttribute("countval")) - 1;
}
}
}
sess.setAttribute("countval", String.valueOf(count));
// String url="hitcount.jsp;jsessionid=" + sess.getId();
% >
<h3> Count is : <%= count %></h3>
<form action
= <%= "hitcount.jsp" %> // name of program is "hitcount"
<input type = "submit" value = "Next" name = "btn">
<input type = "submit" value = "Previous" name = "btn">
</form>
Nota: Por se tratar de um programa de servlet, portanto, precisamos de um servidor de aplicativos para executá-lo. Aqui, vamos usar “Apache Tomcat” e conectá-lo com o Netbeans.
Count is: 0 // The output in the chrome browser. // In apache tomcat log window. session object id is: 68EE34B33FCE6ACB8C1183A2FA8CCBBF session object is new: true
A saída quando iniciamos o aplicativo pela primeira vez.
Agora, suponha que aumentemos ou diminuamos o valor de um contador, o id do objeto de sessão permanecerá o mesmo, mas é um novo usuário? Não, portanto, isso vai me dar falso. Agora vamos ver a saída ao incrementar o valor de um contador.
Count is: 1 // Same alpha numeric string as above, because the // server has identified me with the help of cookies session object id is: 68EE34B33FCE6ACB8C1183A2FA8CCBBF session object is new: false
Nota: A mesma coisa acontece com o Facebook. Ele verificará se você é um novo usuário. Se “Se o objeto de sessão for novo” for verdadeiro, ele irá redirecioná-lo para a página de login. Caso contrário, sua página do Facebook será aberta e você não precisará fazer login novamente.
Agora, e se excluirmos os cookies do hitcounter (localhost: nome do meu servidor)
Nota: Os vídeos contêm uma explicação passo a passo sobre como excluir cookies.
Agora, quando excluímos os cookies do localhost e executamos o programa hitcounter novamente. O servidor esquecerá quem é o usuário e redirecionará para essa página quando o aplicativo for iniciado pela primeira vez.
Agora veja a saída quando excluímos os cookies do localhost. Depois de excluir os cookies, qualquer tecla que pressionarmos (ou seja, aumentar ou diminuir) será exibida “Contagem é: 0” porque era a página inicial quando o aplicativo foi iniciado pela primeira vez.
Count is: 0 session object id is: 7552ECB909E08330A345AF18915EE743 // Since we have delete cookies, the server will forget // the previous user and will treat it as a new user. // Therefore session object id is different from above // and "session is new" giving true. session object is new: true
Nota: Quando apagamos os cookies do Facebook, redirecionamos para aquela página quando foi lançado pela primeira vez e conseguimos ver o nome de usuário e a senha.
No segundo vídeo, modifique o código de acordo com nosso objetivo real. Mesmo se excluirmos os cookies, ainda podemos estar logados sem fazer login novamente.
<% @page contentType = "text/html" pageEncoding = "UTF-8" %>
<!DOCTYPE html>
<head>
<meta http - equiv = "Content-Type"
content = "text/html; charset=UTF-8">
<title> Session Counter</title>
</head>
<% int count
= 0;
HttpSession sess = request.getSession();
System.out.println("session object id is: " + sess.getId());
System.out.println("session object is new: " + sess.isNew());
String name = request.getParameter("btn");
if (name != null) {
if (sess.getAttribute("countval") != null) {
if (name.equals("Next")) {
count =
Integer.parseInt((String)sess.getAttribute("countval")) + 1;
}
else {
count =
Integer.parseInt((String)sess.getAttribute("countval")) - 1;
}
}
}
sess.setAttribute("countval", String.valueOf(count));
// By using "URL Encoding" method
String url = "hitcount.jsp;jsessionid=" + sess.getId();
%>
<h3> Count is : <%= count %></h3>
<form action = "<%=url%>">
<input type = "submit" value = "Next" name = "btn">
<input type = "submit" value = "Previous" name = "btn">
</form>
Saída:
Count is: 0 session object id is: 74E551B3F2E36B74C09885DE6F2EFC67 session object is new: true
Novamente, se incrementarmos o valor, veja a saída
Count is: 1 session object id is: 74E551B3F2E36B74C09885DE6F2EFC67 session object is new: false
A verdadeira magia vem agora. Agora, vamos deletar os cookies do host local e incrementar o valor de count. Veja a saída
Count is: 2 session object id is: 74E551B3F2E36B74C09885DE6F2EFC67 session object is new: false
Agora, se excluirmos o cookie, o servidor vai me identificar como “objeto de sessão é novo”, me dando falso. Isso ocorre porque agora seu id de sessão está sendo passado por URL. É por isso que é denominado “Codificação de URL”. Agora é só relacionar com o Facebook. Mesmo se você excluir os cookies, não precisará fazer login novamente e sua página do Facebook será aberta.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva