搜档网
当前位置:搜档网 › 利用FIDDLER工具进行session和cookie欺骗

利用FIDDLER工具进行session和cookie欺骗

利用FIDDLER工具进行session和cookie欺骗
利用FIDDLER工具进行session和cookie欺骗

利用FIDDLER工具进行session和cookie欺骗

Agileone登录捕获:

选中post请求,在内容中修改密码并执行。

将password=admin,改成password=123,显示结果如下:

在textview中,结果反馈为password invalid。

进行session欺骗:把登录后的任意一个请求的sessionIDcopy到登录get请求内容中,结果响应出已经进入到登录后的首页,和首页中的源文件一样。如图,

请求内容:

GET http://localhost/agileone/ HTTP/1.1

Host: localhost

Connection: keep-alive

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36

Accept-Encoding: gzip, deflate, sdch

Accept-Language: zh-CN,zh;q=0.8

Cookie:PHPSESSID=68aa4b8855d4e704dce53b23eb9a5c92;PHPSESSID=4766b699b16758c0ce 8eca2756a3a459;

Cookie欺骗操作同理。

Cookie用法大全

COOKIE用法大全ASP中的Cookie用法:Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据。Reque st和Response对象都有一组Cookie。Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用Response.Cookies. 1、Expires属性该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了。通过给Expires属性赋一个过期的日期,就可以删除Cookie。如:<%Response.cookies("passtime").Expires=DateAdd("m", 1, NOW)%> 这样设置Cookie在一个月后过期。2、Domain属性该属性定义Cooki e要传送的唯一域。如:Cookie只传送给Microsoft的人,则可以使用以下代码。<%R esponse.Cookies("domain").Domain="https://www.sodocs.net/doc/474965608.html,/"%> 3、ASP 用来写入Cookie即向客户机发送Cookie的语法如下:Response.Cookies("C ookie名").[("键名").属性]=内容如果某个ASP文件要创建一个Cookie,则下面的代码可以放在ASP文件的第一个之前,以避免产生错误. <%Response.Cookie s("CookieName")="NewCookie" %> ...... 4、同样ASP用Re quest对象的Cookies集合来读取Cookie,如:<%Response.write Request.Cooki es("CookieName")%> 下面以一个完整的例子来说明Cookie:<% dim Num Num=Request.Cookies("Visit_num") if Num>0 then Num=Num+1 Response. write "您已是第" & Num & "次访问本站点了。" else Response.write "欢迎您首次访问本站。" Num=1 end if Response.Cookies("Visit_num")=Num %> 在该例子中,首先读取Cookies变量Visit_num,看用户端计算机是否保存有Cookies变量。如果有该变量,则说明用户已经访问过该页面,同时输入出访问次数。如果用户是首次访问该页面,则其计算机内不会有Cookies变量,程序会显示“欢迎”字样,然后将Cookies变量Visit_num存到用户计算机中,以便该用户下一次访问该页面时给出“访问的次数”信息。 5、Cookie字典有时在一个页面中可能需要定义很多个Cookies变量,为了更好地管理它,在Cookies组件中常引入一人的概念“子键”。引用它的语法如下:Request. Cookies("变更名")("子键名")如下面的Cookie创建一个名为"Dictionary"的字典,其中保存了三个键值:<% Response.Cookie("info")("Myname")="jeff" Resp onse.Cookie("info")("Gender")="male" Response.Cookie("info")("Myheight")= "172" %> 事实上客户机上的Cookie字典是以字符串的形式存在:info=Myname

深入理解ServletJSP之Cookie和Session原理

由于H T T P协议的无状态特征,W e b应用中经常使用C o o k i e和S e s s i o n来保存用户在与系统交互过程中的状态数据。下面通过分析H T T P协议对C o o k i e和S e s s i o n的工作原理加以了解。 一、C o o k i e C o o k i e的含义是“服务器送给浏览器的甜点”,即服务器在响应请求时可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。当浏览器再次访问相同的应用时,会将原先的C o o k i e通过请求信息带到服务器端。 下面的S e r v l e t展示了C o o k i e的功能。 ......... p u b l i c v o i d d o G e t(H t t p S e r v l e t R e q u e s t r e q u e s t,H t t p S e r v l e t R e s p o n s e r e s p o n s e) t h r o w s S e r v l e t E x c e p t i o n,I O E x c e p t i o n{ r e s p o n s e.s e t C o n t e n t T y p e("t e x t/h t m l"); P r i n t W r i t e r o u t=r e s p o n s e.g e t W r i t e r(); S t r i n g o p t i o n=r e q u e s t.g e t P a r a m e t e r("o p t i o n"); i f("s h o w".e q u a l s(o p t i o n)){ //获得请求信息中的C o o k i e数据 C o o k i e[]c o o k i e s=r e q u e s t.g e t C o o k i e s(); i f(c o o k i e s!=n u l l){ //找出名称(键)为“c o o l”的C o o k i e f o r(i n t i=0;i"+c o o k i e s[i].g e t N a m e()+":" +c o o k i e s[i].g e t V a l u e()+""); } } } }e l s e i f("a d d".e q u a l s(o p t i o n)){ //创建C o o k i e对象 C o o k i e c o o k i e=n e w C o o k i e("c o o l","y e a h!"); //设置生命周期以秒为单位 c o o k i e.s e t M a x A g e(20); //添加C o o k i e r e s p o n s e.a d d C o o k i e(c o o k i e); }

Fiddler2

Fiddler2 主菜单 六个主菜单分别是: 文件(File) Capture Traffic ——启用捕获功能,快捷键F12 此功能的开启/关闭状态,程序安装后默认是开启的。可以在Fiddler 底部状态栏最左侧看到:(开启状态)、(关闭状态) 也可以通过鼠标点击状态栏该图标来进行切换。 Load Archive... ——载入本地保存的Session 压缩包 Save ——保存 All Sessions... ——保存捕获到的全部Session 到压缩包 Selected Sessions ·in ArchiveZip... ——保存当前选定的Session 为压缩包 ·in Visual Studio Web Test... ——保存当前选定的Session 为Visual Studio Web Test ·in Text... ——保存当前选定的Session为文本 ·in Text (Headers only)... ——保存当前选定的Session 为文本(仅Header) Request ·Entire Request... ——保存当前选定的Session 整个请求(包括Header) ·Request Body... ——保存当前选定的Session 请求的内容(不包括Header)Response ·Entire Response... ——保存当前选定的Session 整个响应(包括Header) ·Response Body... ——保存当前选定的Session 响应的内容(不包括Header)Properties ——当前选择Session 的属性 包括Session 状态、响应包的大小,客户端服务器信息(如进程、端口、传输字节数、TTLB、客户端IP、服务器IP、TTFB等),请求各环节的时间情况、WinINET 缓存信息等。如下图: TTFB (Time-to-First-Byte) 是指:从第一个请求发出到测试工具接收到服务器应答数据的第一个字节之间的平均时间。 TTLB (Time-to-Last-Byte) 是指:从第一个请求发出到测试工具接收到服务器应答数据的最

跨域获取cookie,多个网站实现一键登录

A网站首页PHP(也可以在登录页面加入下面的代码)加入如下代码 view plaincopy to clipboardprint? 1. A网站增加文件getcookies.php,目的是为了让B网站可以以ajax方式来查询A网站的cookie getcookies.php 代码如下 view plaincopy to clipboardprint? 1.$winduid,'msg'=>$msg)); 4.//可以用json_encode自动转换,也可以手写json格 式 $json_data = '{"mywinduid":'.$mywinduid.'}'; 5.$json_data = json_encode(array('mywinduid'=>$mywinduid)); 6.//必需以下这样形式输出,重点就是发送请求的网页的参数中要有jsoncallback参 数 7.echo $callback.'('.$json_data.')'; 8.?> 在需要查询A网站cookie的B网站页面中增加如下代码 view plaincopy to clipboardprint? 1. 2.

使用Cookie记录用户名和密码

使用Cookie记录用户名和密码 一、用户登录操作 在用户填写登录数据后,提交表单进行登录验证,如果用户名和密码正确,则把用户名和密码保存在客户端。页面如图1所示 实现代码如下所示。 ... response.setContentType("text/html;charset=gbk"); //获取用户名 String userName = request.getParameter("username"); //获取用户密码 String password = request.getParameter("password"); //验证用户是否合法 if ("accp".equals(userName) && "accp".equals(password)) { //如果合法,把用户名和密码保存在客户端Cookie中 //获取客户选择的Cookie保存时间 String cookieDate = request.getParameter("cookieDate"); int date = 0; if (cookieDate != null && cookieDate != "") date = Integer.parseInt(cookieDate); //创建用户名Cookie对象 Cookie cookieName = new Cookie("accpLoginName", userName); //设置Cookie保存时间 cookieName.setMaxAge(date); //添加到客户端 response.addCookie(cookieName);

Cookie cookiePass = new Cookie("accpLoginPass", password); //设置保存Cookie时间 cookiePass.setMaxAge(date); //添加到客户端 response.addCookie(cookiePass); response.sendRedirect("success.jsp"); } else { response.sendRedirect("fail.jsp"); } ... 二、用户再次登录时操作 服务器首先读取客户端Cookie信息,如果存在用户名和密码数据,则直接登录,否则显示登录页面。 实现代码如下所示。 response.setContentType("text/html;charset=gbk"); //用户名和密码是否存在以及合法的判断参数 boolean bool=false; //获取客户端Cookie数组 Cookie[] cookies = request.getCookies(); //判断客户端是否存在Cookie对象 if (cookies != null) { //预定义保存用户名和密码的变量 String userName = ""; String password = ""; //遍历Cookie数组 for (int i = 0; i < cookies.length; i++) { //取得每一个Cookie对象 Cookie cookie = cookies[i]; //判断Cookie的名称是否等于"accpLoginName" if ("accpLoginName".equals(cookie.getName())) { userName = cookie.getV alue(); } //判断Cookie的名称是否等于"accpLoginPass" if ("accpLoginPass".equals(cookie.getName())) { password = cookie.getV alue(); } }

Kristenscookiecompany案例分析

Kristen’s cookie company案例分析 一、案例背景介绍 本案例主要介绍的是好室友1和好室友2要在学校里开一家饼干公司。该公司根据订单情况,提供定制化的产品。并且,公司的订单必须是完全新鲜的,因此在接到订单之前不能烘烤饼干。Kristen饼干的制作流程很简单,第一个步骤是接到订单,接订单的时间忽略不计;然后是清洗制作上一批产品时,用于混合原材料的碗,接着进行搅拌,清洗和搅拌的过程需要6分钟;将饼干放入烤盘,需要2分钟;接着把饼干放入烤箱并设定时间和温度,这个过程需要1分钟的时间;烤制饼干需要9分钟;饼干烤熟之后,进行5分钟冷却;继而进行包装,需要2分钟;最后收钱需要1分钟。 在这个过程中,好室友1需要做的是清洗和搅拌工作以及把饼干放入烤盘;好室友2需要做的是讲饼干放入烤箱并设定时间和温度,把烤好的饼干进行包装,以及最后的收费工作。 在这个过程中涉及到的成本主要有:原料成本——0.6美元/打;用来包装饼干的盒子成本——0.1美元/打,这种盒子每个只能装1打饼干;好室友1和好室友2的时间成本。 二、案例说明 1、时间以及成本 根据案例,我们对饼干制作流程以及制作过程中的人员分配进行简单归纳,见表1. 表1:各项流程耗时及人员说明 2、流程分析 为了更好的理解Kristen饼干制作时的过程,我们绘制出整个饼干产品生产的流程图。

6分钟/次 2分钟/盘 9分钟/次5分钟/次2分钟/打1分钟/单 图1:饼干制作流程图 3、其他 饼干是完全新鲜的,因此在接到订单之前不能烘烤饼干。 三、案例分析 1、你需要多长时间来处理一个紧急的订单? 为了简化分析,我们首先来考虑一种比较简单的情况,即对问题做出如下基本假设: 假设1:仅分析订单单位均为1打的情况,即我们假设,紧急订单都需要的是1打饼干。 假设2:如果紧急订单到达时有正在处理的订单,则正在处理的订单之后无订单。(即正在处理的订单之后就马上是紧急订单) 假设3:烤箱、烤盘、搅拌器均只有一个。 在分析之前,我们定义一个函数()y i 。()y i 表示完成每一个生产流程所需要的时间。其中,i 表示的是根据图1所表示的生产流程进行到第i 个步骤,取值为1,2,...,7i 。根据案例背景,我们很容易得到()y i 的表达式如下: (1)紧急订单之前,好室友1和好室友2是闲暇的,即不存在排队情况。那么

APPlication,Session和Cookie的区别

APPlication,Session 和Cookie 的区别 方法信息量大小 保存时间应用范围保存位置 Application 任意大小整个应用程序的生命期 所有用户服务器端Session 小量,简单的数据用户活动时间+一段延迟时间(一般为20分钟) 单个用户服务器端Cookie 小量,简单的数据可以根据需要设定 单个用户客户端1.Application 对象 Application 用于保存所有用户的公共的数据信息,如果使用Application 对象,一个需要考虑的问题是任何写操作都要在Application_OnStart 事件(global.asax)中完成.尽管使用Application.Lock 和Applicaiton.Unlock 方法来避免写操作的同步,但是它串行化了对Application 对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合 2.Session 对象 Session 用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session 中的信息保存在Web 服务器内容中,保存的数据量可大可小.当Session 超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session 对象使保存用户数据的方法效率很低.对于小量的数据,使用Session 对象保存还是一个不错的选择.使用Session 对象保存信息的代码如下:// 存放信息Session["username"]="zhouhuan";//读取数据string UserName=Session["username"].ToString(); 3.Cookie 对象 Cookie 用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie 失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie 对象的Expires 属性设置为Minvalue,则表示Cookie 永远不会过期.Cookie 存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全

fiddler添加查看时间列

今天遇到了一个关于抓取请求响应时间的问题,这里做一下简单的记录。 使用fiddler的Statistics标签页进行查看 使用FiddlerScript让我们的查看变得更加容易 提前说明:fiddler版本号:v4.6.20171.26113,为什么这里要说明一下版本号,是因为有小伙伴发现了他的fiddler加入了下面的代码没有任何效果,所以如果小伙伴们发现自己的fiddler设置之后还是找不到响应时间的列,请查找一下自己的版本号哦。 步骤1:找到FiddlerScript这个标签 步骤2:将下面的code加入到Script中 public static BindUIColumn("TimeTaken/ms", 120) function TimeTaken(oS: Session):String{ var sResult = "0"; var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond; var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute; var t1_s = oS.Timers.ClientBeginResponse.ToUniversalTime().Second; var t1 = t1_m*60*1000 + t1_s*1000 + t1_ms ; var t2_ms = oS.Timers.ClientDoneRequest.ToUniversalTime().Millisecond; var t2_m = oS.Timers.ClientDoneRequest.ToUniversalTime().Minute; var t2_s = oS.Timers.ClientDoneRequest.ToUniversalTime().Second;

java web之会话技术cookie+session

会话技术 1.什么是会话: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接、访问多少个资源,直到用户关闭浏览器,整个这个过程我们成为一次会话 2.实际情况: 张三打开浏览器,进入淘宝,买了2样东西;李四打开浏览器,进入淘宝,买了3样东西。当这两位结账时,结账的s e r v l e t如何得到张三和李四买的东西,并为他两分别结账? 3.使用会话保存数据 ?S e s s i o n ?C o o k i e 为什么需要C o o k i e? 情景1.张在访问某个网站的时候,看到了提示你上次登录网站的时间,而且不同用户上次登录时间不同,这个怎么实现 没有会话技术前:u s e r表每次用户登录就更新u s e r表里的时间 I d N a m e P a s s w o r d L o g i n_t i m e v i e w H i s t o r y 001A a A a2012-1-5 5:00:0022,33,2 5 002B b B b2012-3-12 6:00:0012,24,5 6 情景2.访问购物网的时候,能够看到曾经浏览过的商品,当然不同用户浏览过的商品不同 如果登录了,则可以用数据库 但如果没有登录那又怎么办?????? 情景3.保存登录密码及用户名 Cookie技术 1.服务器把每个用户的数据以cookie的形式写给用户各自的浏览器当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去 Servlet有一个Cookie类 Cookie(String name ,String value) 3.Cookie小结: ①Cookie在服务端创建 Cookie cookie = new Cookie(name,value); ②Cookie是保存在浏览器这端 response.addCookie(cookie); ③Cookie的生命周期可以通过cookie.setMaxAge(int second)来设置 Cookie默认生命周期是会话级别(即存储在浏览器的内存中) 如果没有设置setMaxAge(),则该cookie的生命周期当浏览器关闭时就挂了,setMaxAge(0) +response.addCookie(cookie),相当于删除Cookie 此时如果cookie文件内部只有该Cookie则,文件也一并删除;否则只删除该Cookie ④Cookie可以被多个浏览器共享

Fiddler使用手册

Fiddler的基本页面 Inspectors tab下有很多查看Request或者Response的消息。其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图 Fiddler的HTTP统计视图

通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。 选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化 QuickExec命令行的使用 Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。 常见得命令有

help 打开官方的使用页面介绍,所有的命令都会列出来 cls 清屏(Ctrl+x 也可以清屏) select 选择会话的命令 ?.png 用来选择png后缀的图片 bpu 截获request Fiddler中设置断点修改Request Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话) 如何消除命令呢?点击Rules-> Automatic Breakpoint ->Disabled 第二种: 在命令行中输入命令: bpu https://www.sodocs.net/doc/474965608.html, (这种方法只会中断https://www.sodocs.net/doc/474965608.html,) 如何消除命令呢?在命令行中输入命令bpu

【黑马程序员】Cookie的path设置以及默认取值说明

【黑马程序员】Cookie 的path 设置以及默认取值说明 在JaveEE 课程中,我们Cookie 的API 学习主要集中在name 、value 、maxAge 的使用,针对path 的讲解比较少,下面,将对Cookie 中的path 进行简单的阐述。 setPath 的API 说明 public void setPath(String uri) 指定客户端应该返回 cookie 的路径。 cookie 对于指定目录中的所有页面及该目录子目录中的所有页面都是可见的。cookie 的路径必须包括设置 cookie 的 servlet ,例如 /catalog ,它使 cookie 对于服务器上 /catalog 下的所有目录都是可见的 举例如下: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 CookiePath1 com.itheima.cookie.CookiePath1 CookiePath1 /path1 CookiePath2 com.itheima.cookie.CookiePath2 CookiePath2 /path2

深入理解Session,cookie

深入理解Servlet/JSP之“Cookie和Session原理” (2008-06-29 13:41:09) 转载 标签:it it培训 java jsp servlet session cookie session持久化 由于HTTP协议的无状态特征,Web应用中经常使用Cookie和Session来保存用户在与系统交互过程中的状态数据。下面通过分析HTTP协议对Cookie和Session的工作原理加以了解。 一、Cookie Cookie的含义是“服务器送给浏览器的甜点”,即服务器在响应请求时可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。当浏览器再次访问相同的应用时,会将原先的Cookie通过请求信息带到服务器端。 下面的Servlet展示了Cookie的功能。 ... ... ... public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String option = request.getParameter("option"); if ("show".equals(option)) { //获得请求信息中的Cookie数据 Cookie[] cookies = request.getCookies(); if (cookies != null) { //找出名称(键)为“cool”的Cookie for (int i = 0; i < cookies.length; i++) { if ("cool".equals(cookies[i].getName())) { out.println("

" + cookies[i].getName() + ":" + cookies[i].getValue() + "

"); } } } } else if ("add".equals(option)) { //创建Cookie对象 Cookie cookie = new Cookie("cool", "yeah!");

Fiddler的几个用法

Fiddler的几个用法 1、查看请求 作用:查看请求和返回包,用户一般性检查或者自动化获取包 用法:只要打开fiddler,将界面稍作设置即可,可使用与以ie为内核的所有浏览器。 图0 其中Capturing为是否实行抓包;Web Browsers为实行抓包浏览器类型选项。 可查看内容:Statistisc、Inspectors、Timeline 1)基本数据:请求时间,请求编码,基本性能等

图1 2)请求所有信息 图2 3)时间线 图3 2、构造请求:Request Builder 我们可以通过fiddler构造一个自己需要的请求,可以自己全新输入,也可以从左侧Web sessions中将选定请求拖到右面Request Builder。修改补充所需要的参数后可以点击Execute 执行该请求,来查看请求返回是否符合预期。 该方法的缺点是无法将请求返回输出到web浏览器上。 图4 3、修改请求(断请求) 一般情况下前台js会对用户输入进行过滤,而从安全角度上来讲,后台也需要对传入的数据(参数)进行过滤,因此在测试过程中需要构造类似脏数据去向后台施压,如何绕过前台的限制呢?我们使用如下方法: 1)首先,我们先完成一个正常的请求(从前台页面完成输入),所有的输入都符合js

校验通过要求,记录下该请求。如图5 图5 2)我们将该url进行拷贝。如图6 图6 3)在工具左下方输入bpu url。如图7 图7 4)去除参数(当然如果你制定就是这个请求下的所有参数的话就不需要去除参数,但一般参数中都会有随机码,不去除基本不可能断住该请求)回车。如图8 图8 5)我们再次从前台页面调用这个cgi,可以看到左侧有请求前出现红色图标(图9),这表明该请求已经被断住。此时看该请求右边响应栏是空白的,说明请求没有被发送到cgi 和后台。如图10 图9

关于IE浏览器下iframe内嵌页面无法正确获取cookie的问题!

关于IE浏览器下iframe内嵌页面无法正确获取cookie的问题! 今天遇到一个十分怪异的问题:站点https://www.sodocs.net/doc/474965608.html,的页面中通过iframe包含了站点https://www.sodocs.net/doc/474965608.html,的页面,测试中发现当使用firefox/chrome浏览站点https://www.sodocs.net/doc/474965608.html,的页面均正常显示,而换用IE后便出现错误。 一开始我怀疑IE对iframe中的src属性有所限制,比如:不接受服务器端header 重定向,因为我在https://www.sodocs.net/doc/474965608.html,的页面中使用了header重定向功能,但跟踪的结果是所有的URL参数都正常;继而又开始trace程序,最终确定在出错前的一步所有的输入、输出均正确无误;无奈之下只好打印不同浏览器下的cookie,看看他们是否存在差异,殊不知这一trace大吃一惊:IE浏览器下https://www.sodocs.net/doc/474965608.html, 页面无法正确的获取其设置cookie?! 随google之,然后发现了这个说明: https://www.sodocs.net/doc/474965608.html,/windowsxp/downloads/updates/sp2/docs/privacy_ie. mspx 读罢才知道在IE6+或者windows SP2+系统中,微软添加了P3P隐私保护协议的支持,并且默认阻止第三方无隐私安全声明的cookie。 在我的应用中,站点https://www.sodocs.net/doc/474965608.html,即是第一方,而它通过iframe包含的站点https://www.sodocs.net/doc/474965608.html,便成了第三方。在页面浏览过程中,位于站点https://www.sodocs.net/doc/474965608.html, 的程式往浏览器设置cookie总是会成功(PS:当然,浏览器自身的cookie限制未生效),但默认情况下IE的隐私保护会禁止发送属于https://www.sodocs.net/doc/474965608.html,的cookie,包括session的cookie! 由于这个问题在IE中表现很特殊,只是在状态栏中显示一个带有红色禁止标志的小眼睛,所以一般不易被察觉(PS:我就是因此而浪费了一个下午~~~)。 双击这个图标就可以打开浏览器当前已保护的隐私项,如下:

在jsp中使用cookie保存用户信息

详细介绍jsp中的Cookie 在开发网站应用程序的过程中,使用cookie记录用户的一些信息是比较常用的一种方法,而cookie的使用也非常简单。 一、Cookie是通过HttpServletResponse的addCookie方法加入到Set-Cookie应答头中的 例如: Cookie userCookie = new Cookie("user", "admin"); 1.response.addCookie(userCookie); 和设置有关系的还有以下两个重要方法 1.setMaxAge 设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,而且这些Cookie不会保存到磁盘上。 注意:删除cookie就是通过该方法实现的。将要删除的cookie的过期之前的时间指定为0就可以达到删除该cookie的目的。 2.setPath 设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面(jsp(SUN企业级应用的首选)页面或者Servlet的映射)所在目录及其子目录下的所有页面。 注意: A:所有的cookie都是有路径的 B:该方法设置的路径为客户端路径,即“/”代表服务器根目录,而不是WEB应用根目录 C:该方法设置路径时,“/myWeb/”与“/myWeb”是不同的,要特别注意;前者可以关联到服务器的myWeb目录下,而后者则不可以。 D:该方法设置路径时,没有相对目录可言,即不论在哪个目录下设置 setPath(“/myWeb/”),该cookie都将关联到服务器的myWeb目录下(setPath(“/myWeb”)

使用fiddler限制网速的调试及设置方法

1.下载并安装fiddler 2.Fiddler限速的方法是以网络延迟的方式实现的 网络延迟*网速=传输字节数(理解不了的,就考虑匀速运动时,速度*时间=位移哈) Fiddler的延迟时间以每传输1KB需要延迟的时间(毫秒)来算,看你想定义多少的网速哈 3.设置方法 a)设置---自定义规则,打开配置文件,修改simulate modem speed这种模式时的网络 延迟时间(上传延迟和下载延迟分别设置,一般情况的网络,上载延迟大于下载延 迟),具体修改延迟为多少,根据你计算的结果来,比如你要模拟上传速度为 100KBps的网络,那上载延迟就是1KB/100KBps=0.01s=100ms,就是设成100啦 B)保存配置文件,返回到主界面,选择设置—perfomance,勾选simulate Modem speeds. 注意:每次编辑并保存配置文件后,该选项会被取消,请重新勾选 4.手机代理设置 a)工具—fiddler选择—常规,勾选“允许远程计算机连接”

b)工具—fiddler选项—连接,勾选“连接上一级网关代理”,端口默认8888,保存即 可。 c)接下来就是设置你手机wifi的了,要求手机和主机在同一个网络内,设置代理,代 理端口8888,代理服务器就是主机IP 5.如何设置fiddler不要限速主机浏览器呢? Fiddler作为代理的方式,如果你在fiddler选项—连接,勾选了“作为系统启动代理”,就是主机系统访问网络都通过了fiddler来代理的,那么取消这个勾选就可以了 (说明:我上传的这个版本有点落后,对于这个选项只要做了更改,只能重新启动fiddler 才能生效哈) 6.一般我们说10M的网络,是10Mbps=10*1024Kbps=10*1024/8KBps=128KBps Cindy Lee 2015. 10

cookie揭秘

Cookies 揭秘 注:本文选自网络 derstsea 2011/3/4 摘要:介绍cookies相关知识。

一前言 Cookies想必所有人都了解,但是未必所有人都精通。本文讲解了Cookies的各方面知识,并且提出来了最佳实践。这是笔者在日常工作中的积累和沉淀。 二基础知识 1.什么是Cookies Cookie 是一小段文本信息,伴随着用户请求和页面在Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时Web 应用程序都可以读取的信息。 例如,如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的Cookie,用户的浏览器在获得页面的同时还获得了该Cookie,并将它存储在用户硬盘上的某个文件夹中。 以后,如果该用户再次请求您站点中的页面,当该用户输入URL 时,浏览器便会在本地硬盘上查找与该URL 关联的Cookie。如果该Cookie 存在,浏览器便将该Cookie 与页请求一起发送到您的站点。然后,应用程序便可以确定该用户上次访问站点的日期和时间。您可以使用这些信息向用户显示一条消息,也可以检查到期日期。 Cookie 与网站关联,而不是与特定的页面关联。因此,无论用户请求站点中的哪一个页面,浏览器和服务器都将交换Cookie 信息。用户访问不同站点时,各个站点都可能会向用户的浏览器发送一个Cookie;浏览器会分别存储所有Cookie。 Cookie 帮助网站存储有关访问者的信息。一般来说,Cookie 是一种保持Web 应用程序连续性(即执行状态管理)的方法。除短暂的实际交换信息的时间外,浏览器和Web 服务器间都是断开连接的。对于用户向Web 服务器发出的每个请求,Web 服务器都会单独处理。但是在很多情况下,Web 服务器在用户请求页时识别出用户会十分有用。例如,购物站点上的Web 服务器跟踪每位购物者,这样站点就可以管理购物车和其他的用户特定信息。因此,Cookie 可以作为一种名片,提供相关的标识信息帮助应用程序确定如何继续执行。 使用Cookie 能够达到多种目的,所有这些目的都是为了帮助网站记住用户。例如,一个实施民意测验的站点可以简单地将Cookie 作为一个Boolean 值,用它来指示用户

几种session存储方式比较

几种session存储方式比较 1. 客户端cookie加密 这是我以前采用的方式,简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。 问题:session中数据不能太多,最好只有个用户id。 参考实现:https://www.sodocs.net/doc/474965608.html, 2. application server的session复制 可能大部分应用服务器都提供了session复制的功能来实现集群,tomcat,jboss,was都提供了这样的功能。 问题: 性能随着服务器增加急剧下降,而且容易引起广播风暴; session数据需要序列化,影响性能。 如何序列化,可以参考对象的序列化和反序列化. 参考资料 Tomcat 5集群中的SESSION复制一 Tomcat 5集群中的SESSION复制二 应用服务器-JBoss 4.0.2集群指南 3. 使用数据库保存session 使用数据库来保存session,就算服务器宕机了也没事,session照样在。 问题: 程序需要定制; 每次请求都进行数据库读写开销不小(使用内存数据库可以提高性能,宕机就会丢失数据。可供选择的内存数据库有BerkeleyDB,MySQL的内存表); 数据库是一个单点,当然可以做数据库的ha来解决这个问题。 4. 使用共享存储来保存session 和数据库类似,就算服务器宕机了也没事,session照样在。使用nfs或windows文件共享都可以,或者专用的共享存储设备。 问题: 程序需要定制; 频繁的进行数据的序列化和反序列化,性能是否有影响; 共享存储是一个单点,这个可以通过raid来解决。 5. 使用memcached来保存session 这种方式跟数据库类似,不过因为是内存存取的,性能自然要比数据库好多了。 问题: 程序需要定制,增加了工作量; 存入memcached中的数据都需要序列化,效率较低; memcached服务器一死,所有session全丢。memchached能不能做HA 我也不知道,网站上没提。 参考资料 应用memcached保存session会话信息 正确认识memcached的缓存失效 扩展Tomcat 6.x,使用memcached存放session信息 6. 使用terracotta来保存session

相关主题