基于 Cookie 的信息共享机制

简介: 基于Cookie的信息共享机制用于客户端状态保持。Cookie是服务器生成并发送到浏览器的文本文件,存储用户状态和安全信息。当用户发起请求时,浏览器会将Cookie一并发送,服务器据此处理。Cookie分为内存和硬盘两种,有持久和非持久之分,但因以明文存储,存在安全隐患。JSP/Servlet中的Cookie类提供管理方法。示例代码展示了如何使用JSP设置和检查Cookie。需注意Cookie的安全问题,避免数据泄露。

基于 Cookie 的信息共享机制

1. 基于 Cookie 的客户端本地信息凭证存储机制

Cookie——在客户机上存储的、与服务器通信而存储的状态、安全等信息,其格式为文本文件。

2.Cookie 产生、存储与再利用的基本过程

用户通过浏览器发送 request.
针对用户请求,服务器端 jsp 脚本根据需要可以创建 Cookie 信息,经 response 发给客户浏览器.
客户浏览器,在本机中存储相应的 cookie 信息;
当该客户发起另一个 request 时,在 http 请求的 header 部分,会同时发送 cookie 信息给服务器;
此时,服务器端 jsp 可获取该 cookie 信息,并决定后续处理过程.

3.HTTP 请求+cookie 认证的交互流程
image.png

3.Cookie 的类型与安全性

【1】Cookie 总是保存在客户端中,按在客户端中的存储位置,可分为内存 Cookie 和硬盘 Cookie。
  内存 Cookie:由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。
  硬盘 Cookie:保存在硬盘中,有过期时间(expired time);除非用户手工清除或过期,其不会被删除.
【2】按存储时间分类:可分为非持久 Cookie 和持久 Cookie。
Cookie 的安全性
Cookie 以明文(文本文件)方式存储在用户计算机中。
Cookie 的查看:
可通过浏览器查看和管理;
网页中的 javascript 可以存取 Cookie;
恶意 javascript 脚本注入可提取 Cookie;
第三方网站会连带传送 Cookie;
Cookie 的安全性
存在易被黑客利用或泄露用户隐私问题,故其安全性应着重考虑——搜索 Cookie 安全.

4.JSP/Servlet 中 Cookie 类中的方法
image.png

5.为用户浏览器智能设置 Cookie 的 JSP 程序

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*, java.net.*" %>
<head><meta charset="UTF-8"><title>表单输入参数查看</title></head><body>
<%
//检查用户端是否已存在名为 course_cookie 的 Cookie,若有,则取得该对象
final String CK = "course_cookie";
Cookie ck0 = null;
Cookie[] cookies = request.getCookies(); //取得 request 时同时发送的 Cookies
for(Cookie ck : cookies) {
   
    //枚举查看每个 Cookie 的名称
String cname = ck.getName(); out.print(cname);
if (cname.equals(CK)) {
   
   

ck0 = ck; out.print("<font color=red>(found)</font>:" + ck.getValue());
}
out.print("<br/>");
}
if (ck0 == null) {
   
    //若未发现响应的 Cookie,则新建,名称和值不含空格、[ ] ( ) = , " / ? @ : ;
Cookie cookie = new Cookie(CK,"这是一个课内设置的 cookie.");
cookie.setMaxAge(60); //Cookie 在客户浏览器端 1 分钟后失效
response.addCookie(cookie); // 在响应头部添加 cookie
out.println("已在你的浏览器端设置了 Cookie,请查看");
} 
else out.print("您的 cookie 已经存在.");
%> 
</body>

在这里插入图片描述
好了。今天的分享就到这里了。点赞哦。

目录
相关文章
|
6月前
|
前端开发
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
|
2月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
3月前
|
数据安全/隐私保护
在某网站的登录页面登录时如果选择“记住用户名”,登录成功后会跳转到一个中间层(页面代码将登录的用户名和密码存在cookie),中间页面中存在一个超链接,单击超链接可以链接到第三个页面查看信息。若选择“
该博客文章通过示例代码和运行结果截图,展示了网站登录过程中如何通过中间层页面使用cookies技术实现“记住用户名”功能,并在点击超链接后查看保存的用户名和密码信息。
在某网站的登录页面登录时如果选择“记住用户名”,登录成功后会跳转到一个中间层(页面代码将登录的用户名和密码存在cookie),中间页面中存在一个超链接,单击超链接可以链接到第三个页面查看信息。若选择“
|
3月前
|
存储 JavaScript 前端开发
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
176 1
|
3月前
|
存储 C#
【Azure APIM】APIM 策略语句如何读取请求头中所携带的Cookie信息并保存为变量
【Azure APIM】APIM 策略语句如何读取请求头中所携带的Cookie信息并保存为变量
|
3月前
|
数据安全/隐私保护
|
3月前
|
存储 安全 搜索推荐
HTTP的Cookie机制
【8月更文挑战第19天】Cookie 是服务器为识别用户身份而发送给浏览器的小型文本文件。首次访问时,服务器通过响应中的 Set-Cookie 创建并发送 Cookie 给浏览器。
|
5月前
|
安全 Java Maven
如何使用jsoup实现网站登录,cookie保存,查询信息
【6月更文挑战第11天】如何使用jsoup实现网站登录,cookie保存,查询信息
198 1
|
5月前
|
安全 Java Maven
使用jsoup实现网站登录,cookie保存,查询信息
【6月更文挑战第7天】使用jsoup实现网站登录,cookie保存,查询信息
87 0
|
6月前
|
存储 安全 Java
cookie机制 + java 案例
cookie机制 + java 案例
47 0