四,session和cookie谁更安全
就个人而言,我觉得session更安全一点,我以下几点看法。
1,如果session和cookie一样安全的话,二者就没有并要同时存在了,只要cookie就好了,让客户端来分提服务器的负担,并且对于用户来说又是透明的。何乐而不为呢。
2,session的sessionID是放在cookie里,要想功破session的话,第一要功破cookie。功破cookie后,你要得到 sessionID,sessionID是要有人登录,或者启动session_start才会有,你不知道什么时候会有人登录。第二,sessionID是加密的,第二次session_start的时候,前一次的sessionID就没有用了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难。session是针对某一次通信而言,会话结束session也就随着消失了,而真正的cookie存在于客户端硬盘上的一个文本文件,谁安全很显然了。
3,如果session这么容易被功破,这么不安全的话,我想现有的绝大部分网站都不安全了。
1、作用域控制对象
(1)作用
表示一个对象的存在范围
(2)分类
A:当前jsp文件(当前jsp编译生成的类文件)
page 默认的
特例:包含指令实现包含效果时,在被包含文件中声明的对象。
B:具有明确请求传递关系的两个jsp文件
request:利用属性(一键一值)实现的对象存储。
request中属性存储的对象信息,会在接受请求的文件执行完成后,自动清除。
使用场景:页面转发效果时,进行的值的传递。
C:客户端信息的存储方式
第一种:用户(客户端)信息存储方式:用户信息全部由客户端实现存储和管理。
第二种:服务器端的信息存储。信息统一存储到服务器上。
技术上的实现:
客户端存储方式:Cookie
服务器端的信息存储:Session application
2、Cookie
(1)理解
“小甜饼”。存储在客户端机器浏览器临时目录中,实现用户基本信息存储的临时文本文件。
(2)特征
A:是文本文件
B:是临时性的文本文件。
C:文件的大小一般不超过1K
D:存储在浏览器的临时目录中
E:默认的,COOKIE对于浏览器不兼容,对WEB应用程序共享。
F:cookie以名称与值的方式存储用户的基本信息。
G:存储信息的作用域是:一个浏览器访问的多个页面
H:cookie会泄露用户个人隐私
I:cookie是会被客户端禁用的
(3)应用
A:创建cookie
Cookie cookie=new Cookie("名称",“值”);
一个cookie只能存储一个值,一个Cookie文件可以存储多个Cookie
B:指定cookie的生效期
明确cookie文件的存在时间。
cookie的分类:会话级ccokie和永久性cookie。
会话级cookie:cookie只在当前用户访问过程中,在缓存中存在。用户一退出,cookie自动清除。程序上的体现:不指定cookie的保存时间。
永久性cookie:一明确cookie的存在时间了,cookie文件就会在客户端机器中创建。一创建,就认为是永久性的。
cookie.setMaxAge(int)--->秒为单位
C:输出cookie
在客户端建立文本
response.addCookie(cookie)
D:从客户端获得Cookie
request.getCookies()---->数组。客户端当前浏览器中所有cookie组成的集合。