使用php cookie使用有哪些风险

实训3_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
&&cookies技术的调研与分析
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢最近在翻看危险漫步博客一些文章的时候,拜读了一篇文章关于Cookie注入的文章,受益良多。文中详细解析了Cookie注入漏洞存在的原因以及多种利用方法,非常适合大家来学习进步,但是我总感觉不够完善,今天我就来补充一下。想想看,大家平时在入侵中碰到Cookie注入漏洞的时候,多半采用的利用方法应该就是用“寂寞的刺猬”大大写的那款“注入中转生成器”来生成一个asp页面。然后将生成的页面文件放在asp环境下,构造出合适的url就可以直接注入了。方法虽然不是很复杂,但是有的时候,专门为了一个注入漏洞来搭建一个asp环境也挺不方便的。一、工具的简单介绍这里,我就给大家介绍一款工具,可以直接搞定大部分Cookie注入漏洞,避免了因需要搭建asp环境而带来的麻烦。好吧,废话不多说,先上工具的高清无码大图一张。没错,就是这个“鬼客、cookie全自动SQL注入工具”,从标题就可以看出来,这个工具只适用于Access数据库的注入,这也就是我前面提到的可以搞定大部分Cookie注入漏洞而不是全部的原因了。二、实践演示我们直接搭建一个存在Cookie注入漏洞的网站出来,在实践中来掌握这个工具的使用方法。这里我从网上找到了一套程序“宜昌电脑公司”,好了,网站搭建好,我们就来开始活动了。经由我们分析得知,存在Cookie注入漏洞的页面是网站根目录下的news_more.asp文件,Ok,我们在网站中找到类似的链接,习惯性的在该地址后面添加一个单引号,弹出了防注入警告。继续提交-0和-1,分别返回了不同的页面。到这里,我们就可以大胆的猜测该页面存在Cookie注入漏洞了。接下来就是鬼客的这款工具大显神通的时候了,打开工具,在注入网址框填写,变量框填写id,变量后的值框中填写1179,这个具体是需要根据存在Cookie注入的地址来填写的,因为我是本地搭建,存在Cookie注入的地址是//localhost/news_more.asp?id=1179,所以就要按照上面介绍的来填写。心急的朋友们别只填写好这个以后就直接点击检测按钮了,不,我们还需要填写下连接类型和特征字符。我先来解释下连接类型,所谓连接类型,就是指该注入点是数字型还是字符型注入点,关于怎么判断我就不多说了,无非是个单引号符号闭合的问题,单纯的看数字还是字母有时候不是那么准确。再来说下特征字符,所谓特征字符,就是指当前正常页面存在而报错页面不存在的,可以起到区分作用的字符串。这里,我们用刚刚那个注入点做演示,先提交让其报错。对比正常页面,我们发现,新闻标题不见了,那么该则新闻标题“一分价钱一分货高价彩色复合机推荐”就是存在于正常页面而不存在于报错页面的特征字符了。OK,我们将其填写在特征字符栏中,经测试,连接类型是数字型,我们勾选数字单选框,填好后结果。至此,需要填写的就全部完成了,我们点击检测按钮,稍等一会,工具左下方提示存在注入。到这里,就可以开始注入了,我们点击检测表段,工具就开始用字典暴力破解表段了,稍等一会后,会在左下方提示检测表段完成,我们可以发现工具检测出来一个ADMIN表段。这里ADMIN表可能就是存放管理员账号密码的表,我们单击选中它,然后检测字段,耐心等待一会至提示检测字段完成,Ok,我们发现在ADMIN表下已经检测出来了三个字段:ID、ADMIN、PWD。接下来,就是分别对ADMIN字段和PWD字段的内容进行检测了,最后得到内容。有的时候得到的密码可能是经过加密的,那时候就需要相应的查询解密,这里是明文密码就不多说了。接下来就是去后台测试注入到的账号密码是否正确,找到后台,成功登陆。至此,我相信大家都会使用该工具来直接搞定Cookie注入点了。如果遇到另类的表名字段名需要添加的情况,我们可以点击工具左侧的程序设置按钮,然后自行添加。记得某位大牛曾经说过:工具的作用就是让入侵更为方便。相信这款可以直接搞定Cookie注入点的工具,可以让大家在以后的入侵过程中更简单更快捷的搞定目标。同时也希望大家有什么好的工具一起交流进步。Cookie的引文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的“点心”。服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如电子商务)特别有用。
当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关信息。
Cookie的运行机制是由HTTP协议规定的,多数Web服务器和浏览器都支持Cookie。Web服务器为了支持Cookie,需具备以下功能:
·在HTTP响应结果中添加Cookie数据。
·解析HTTP请求中的Cookie数据。
浏览器为了支持Cookie,需要具备以下功能:
·解析HTTP响应结果中的Cookie数据。
·把Cookie数据保存到本地硬盘。
·读取本地硬盘上的Cookie数据,把它添加到HTTP请求中。
Cookie操作
对Cookie的操作无外乎三部分:读、分析、写。
Cookie theCookie = new Cookie(“username” , “Tom”);
response.addCookie(theCookie);
当Servlet向客户端写Cookie时,还可以通过Cookie类的setMaxAge(intexpiry)方法来设置Cookie的有效期。参数expiry以秒为单位,它具有以下含义:
·如果expiry大于零,就指示浏览器在客户端硬盘上保存Cookie的时间为expriy秒。
·如果expiry等于零,就指示浏览器删除当前Cookie。
·如果expiry小于零,就指示浏览器不要把Cookie保存到客户端硬盘。Cookie仅仅存在于当前浏览器进程中,当浏览器进程关闭,Cookie也就消失。
Cookie默认的有效期为-1。对于来自客户端的Cookie,Servlet可以通过Cookie类的getMaxAge()方法来读取Cookie的有效期。
读取分析客户端Cookie
Cookie[] cookies = request.getCookies();
HttpServletRequest类的getCookies()方法返回一个Cookie数组,它包含了HTTP请求中的所有Cookie。如果在HTTP请求中没有任何Cookie,那么getCookies()方法返回null。
对于每个Cookie对象,可调用getName()方法来获得Cookie的名字,调用getValue()方法来获得Cookie的值。
Cookie的使用示例
先读取客户端的所有Cookie,把每个Cookie的名字、值和有效期打印出来,然后向客户端写一个Cookie。
public&class&CookieServlet&extends&HttpServlet&{&&
&&&&private&static&final&long&serialVersionUID&=&1L;&&
&&&&int&count&=&0;&&
&&&&protected&void&doGet(HttpServletRequest&request,&HttpServletResponse&response)&throws&ServletException,&IOException&{&&
&&&&&&&&this.doPost(request,&response);&&
&&&&protected&void&doPost(HttpServletRequest&req,&HttpServletResponse&res)&throws&ServletException,&IOException&{&&
&&&&&&&&res.setContentType("text/plain");&&
&&&&&&&&PrintWriter&out&=&res.getWriter();&&
&&&&&&&&Cookie[]&cookies&=&req.getCookies();&&
&&&&&&&&if(cookies&!=&null){&&
&&&&&&&&&&&&for(int&i&=&0&;&i&&&cookies.length&;&i++){&&
&&&&&&&&&&&&&&&&out.println("Cookie&name:"&+&cookies[i].getName());&&
&&&&&&&&&&&&&&&&out.println("Cookie&value:"&+&cookies[i].getValue());&&
&&&&&&&&&&&&&&&&out.println("Cookie&maxAge:"&+&cookies[i].getMaxAge());&&
&&&&&&&&&&&&}&&
&&&&&&&&}else{&&
&&&&&&&&&&&&out.println("No&cookie.");&&
&&&&&&&&}&&
&&&&&&&&res.addCookie(new&Cookie("cookieName"&+&count&,&"cookieValue"&+&count));&&
&&&&&&&&count++;&&
在web.xml文件中为CookieServlet映射的URL为“/cookie”,按照下面的步骤访问CookieServlet:
(1)&&&&&&&&&&&打开浏览器,第一次访问CookieServlet。由于浏览器端此时还不存在任何Cookie,因此CookieServlet向客户端返回“No cookie.”。
(2)&&&&&&&&&&&在同一个浏览器中第二次访问CookieServlet。在步骤一中CookieServlet已经向客户端写了一个Cookie:“cookieName0=cookieValue0”,因此在浏览器第二次发出的HTTP请求中包含了这个Cookie,CookieServlet读取该Cookie,并向客户端返回该Cookie的信息,在页面中显示的Cookie的有效期为-1,表示该Cookie仅存在于当前浏览器进程中,其他浏览器进程无法访问到这个Cookie。
(3)&&&&&&&&&&&在同一个浏览器中第三次访问CookieServlet。在步骤二中CookieServlet已经向浏览器写了一个Cookie:“cookieName1=cookieValue1”,CookieServlet向客户端返回步骤一及步骤二中生成的Cookie的信息。
(4)&&&&&&&&&&&再打开一个新的浏览器,从这个浏览器中第一次访问CookieServlet。由于这个浏览器客户端此时还不存在任何Cookie,因此CookieServlet向客户端返回“No cookie.”。
(5)&&&&&&&&&&&从第二个浏览器中第二次访问Servlet。在步骤四中CookieServlet向客户端写了一个Cookie:“cookieName3=cookieValue3”,因此CookieServlet向客户端返回该Cookie的信息。
示例2 对Cookie的修改和删除
先读取客户端的所有的Cookie,寻找名为username的cookie,然后判断,如果不存在就向客户端写入一个新的Cookie:“username=Tom”,且有效期为1小时;如果存在且值为Tom,将值改为Jack,如果存在且值为Jack,删除该Cookie。
protected&void&doPost(HttpServletRequest&req,&HttpServletResponse&res)&throws&ServletException,&IOException&{&&
&&&&&&&&Cookie&cookie&=&&&
&&&&&&&&res.setContentType("text/plain");&&
&&&&&&&&PrintWriter&out&=&res.getWriter();&&
&&&&&&&&Cookie[]&cookies&=&req.getCookies();&&
&&&&&&&&if(cookies&!=&null){&&
&&&&&&&&&&&&for(int&i&=&0&;&i&&&cookies.length&;&i++){&&
&&&&&&&&&&&&&&&&out.println("Cookie&name:"&+&cookies[i].getName());&&
&&&&&&&&&&&&&&&&out.println("Cookie&value:"&+&cookies[i].getValue());&&
&&&&&&&&&&&&&&&&if(cookies[i].getName().equals("username"))&&
&&&&&&&&&&&&&&&&&&&&cookie&=&cookies[i];&&
&&&&&&&&&&&&}&&
&&&&&&&&}else{&&
&&&&&&&&&&&&out.println("No&cookie.");&&
&&&&&&&&}&&
&&&&&&&&&&
&&&&&&&&if(cookie==null){&&
&&&&&&&&&&&&cookie=new&Cookie("username"&,&"Tom");&&
&&&&&&&&&&&&cookie.setMaxAge(60*60);&&
&&&&&&&&&&&&res.addCookie(cookie);&&
&&&&&&&&}else&if(cookie.getValue().equals("Tom")){&&
&&&&&&&&&&&&cookie.setValue("Jack");&&
&&&&&&&&&&&&res.addCookie(cookie);&&
&&&&&&&&}else&if(cookie.getValue().equals("Jack")){&&
&&&&&&&&&&&&cookie.setMaxAge(0);&&
&&&&&&&&&&&&res.addCookie(cookie);&&
&&&&&&&&}&&
(1)&&&&&&打开浏览器,第一次访问Cookie1Servlet。由于浏览器端此时还不存在任何Cookie,因此Cookie1Servlet向客户端返回“No cookie.”。
(2)&&&&&&在同一个浏览器中第二次访问Cookie1Servlet。在步骤一中Cookie1Servlet已经向浏览器端写了一个Cookie:“username=Tom”,浏览器在本次HTTP请求中包含了这个Cookie,Cookie1Servlet向客户端返回该Cookie的信息:
Cookie name:username
Cookie value:Tom
(3)&&&&&&在同一个浏览器中第三次访问Cookie1Servlet。在步骤二中Cookie1Servlet已经把浏览器端的名为“username”的Cookie的值改为“Jack”,浏览器在本次HTTP请求中包含了这个Cookie,Cookie1Servlet向客户端返回修改后的Cookie的信息:
Cookie name:username
Cookie value:Jack
(4)&&&&&&在同一个浏览器中第四次访问Cookie1Servlet。在步骤三中Cookie1Servlet已经把浏览器端的名“username”的Cookie的有效期设为“0”,浏览器在处理步骤三中的HTTP响应结果时会删除该Cookie。浏览器在本次HTTP请求中不包含任何Cookie信息,因此Cookie1Servlet向客户端返回“No cookie”。
(5)&&&&&&再打开一个新的浏览器,访问Cookie1Servlet。在步骤四中Cookie1Servlet已经向浏览器端写了一个Cookie:“username=Tom”,它的有效期为1小时,因此浏览器会把它保存到硬盘,其他浏览器也能反问这个Cookie。新打开的浏览器在HTTP请求中包含了这个Cookie,Cookie1Servlet向客户端返回该Cookie的信息。
假定在Tomcat服务器A上有一个app1应用和一个app2应用,在Tomcat服务器B上有一个app3应用。用户会通过一个浏览器进程访问app1、app2、app3应用。
假定app1应用中的一个Web组件X在浏览器上保存了一个Cookie,当浏览器再次请求访问app1、app2和app3应用中的其他Web组件时,浏览器是否会把Cookie添加到HTTP请求中,从而让这些Web组件能够读取该Cookie呢?
在默认情况下,处于安全的原因,只有app1应用中的Web组件能读取该Cookie。如果希望改变Cookie的共享范围,那么app1应用中的Web组件X在写Cookie时,可以通过setPath(Stringpath)和setDodomain(String domain)方法来设置Cookie的path和domain属性。
(1)&&&&&&让同一个Tomcat服务器A中的app1应用和app2应用共享Cookie。app1应用中的Web组件X的写Cookie的代码:
Cookie cookie = new Cookie(“username” , “Tom”);
cookie.setPath(“/”);
res.addCookie(cookie);
以上serPath()的参数为“/”,表示Tomcat服务器的根路径,因此同一个Tomcat服务器中的所有Web应用可以共享上述Cookie。
(2)&&&&&&只能让Tomcat服务器A中的app2应用访问该Cookie。app1应用中的Web组件X的写Cookie的代码如下;
Cookie cookie = new Cookie(“username” , “Tom”);
cookie.setPath(“/app2/”);
res.addCookie(cookie);
以上setPath()的参数为“/app2/”,因此只有Tomcat服务器A中的app2应用可以访问该Cookie,app1应用也无法访问该Cookie。
(3)&&&&&&只让Tomcat服务器A中的app1应用中的位于“/sub”子路径下的Web组件访问Cookie。app1中应用中的Web组件X的写Cookie代码:
Cookie cookie = new Cookie(“username” , “Tom”);
cookie.setPath(“/app1/sub”);
res.addCookie(cookie);
(4)&&&&&&让Tomcat服务器B中的所有Web应用访问Cookie,假定Tomcat服务器B的域名为。app1应用中的Web组件X的写Cookie的代码:
Cookie cookie = new Cookie(“username” , “Tom”);
cookie.setDomain(“.”);
res.addCookie(cookie);
模拟taobao等网站的广告推广
类似的网站在客户浏览信息时,会将浏览历史数据保存在客户端,在下次客户打开网站时,向客户推广最近浏览过的商品信息。
页面中的每个连接代表一个商品分类,在点击连接时通过AddCookieServlet向客户端保存Cookie:“itemsNum:4”:
public&class&AddCookieServlet&extends&HttpServlet&{&&
&&&&private&static&final&long&serialVersionUID&=&1L;&&
&&&&protected&void&doGet(HttpServletRequest&request,&HttpServletResponse&response)&throws&ServletException,&IOException&{&&
&&&&&&&&this.doPost(request,&response);&&
&&&&protected&void&doPost(HttpServletRequest&req,&HttpServletResponse&res)&throws&ServletException,&IOException&{&&
&&&&&&&&Cookie&cookie&=&&&
&&&&&&&&res.setContentType("text/charset=utf-8");&&
&&&&&&&&PrintWriter&out&=&res.getWriter();&&
&&&&&&&&out.println("&html&&head&&title&商品列表&/title&&/head&&body&&ul&&li&");&&
&&&&&&&&out.println("&a&href=\"addCookie?itemNum=4\"&服装&/a&&/li&&li&");&&
&&&&&&&&out.println("&a&href=\"addCookie?itemNum=3\"&电器&/a&&/li&&li&");&&
&&&&&&&&out.println("&a&href=\"addCookie?itemNum=2\"&礼品&/a&&/li&&li&");&&
&&&&&&&&out.println("&a&href=\"addCookie?itemNum=1\"&娱乐&/a&&/li&&/ul&");&&
&&&&&&&&Cookie[]&cookies&=&req.getCookies();&&
&&&&&&&&if(cookies&!=&null){&&
&&&&&&&&&&&&for(int&i&=&0&;&i&&&cookies.length&;&i++){&&
&&&&&&&&&&&&&&&&if(cookies[i].getName().equals("itemsNum")){&&
&&&&&&&&&&&&&&&&&&&&out.println("你可能需要:商品编号["&+&cookies[i].getValue()&+&"]");&&
&&&&&&&&&&&&&&&&&&&&cookie&=&cookies[i];&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&}&&
&&&&&&&&}else{&&
&&&&&&&&&&&&out.println("No&cookie.");&&
&&&&&&&&}&&
&&&&&&&&&&
&&&&&&&&String&itemNum&=&req.getParameter("itemNum");&&
&&&&&&&&if(itemNum!=null){&&
&&&&&&&&&&&&cookie=cookie==null?new&Cookie("itemsNum"&,&itemNum):&&
&&&&&&&&&&&&cookie.setValue(itemNum);&&
&&&&&&&&&&&&cookie.setMaxAge(60*60*24*7);&&
&&&&&&&&&&&&res.addCookie(cookie);&&
&&&&&&&&}&&
&&&&&&&&out.println("&/body&&/html&");&&
打开浏览器访问。初始页面为:
点击其中的一个连接,然后再打开另一个浏览器或是关闭当前网页再打开上面的连接,发现页面会显示上次浏览的商品编号:
此类应用可以根据用户的使用,动态设置推广信息、客户个性化喜好等,还可以在逻辑中增加判断,查看客户隔了多长时间再次访问该网站。
使用Cookie模拟自动登录
用户登录一次后选择自动登录,在下次登录该网站时无需登录步骤,就可直接进入网页。
首先应该有一个过滤器判断用户是否设置了自动登录,如果设置了自动登录则从Cookie中读取数据直接登录,进入网站。创建过滤器,并注册到应用中:
public&class&LoginFilter&implements&Filter&{&&
&&&&public&void&init(FilterConfig&fConfig)&throws&ServletException&{}&&
&&&&public&void&destroy()&{}&&
&&&&public&void&doFilter(ServletRequest&reqest,&ServletResponse&response,&&
&&&&&&&&&&&&FilterChain&chain)&throws&IOException,&ServletException&{&&
&&&&&&&&HttpServletRequest&req&=&(HttpServletRequest)&&&
&&&&&&&&HttpServletResponse&res&=&(HttpServletResponse)&&&
&&&&&&&&if&(!req.getRequestURI().endsWith("login.html")&&!req.getRequestURI().endsWith("loginServlet"))&{&&
&&&&&&&&&&&&HttpSession&session&=&req.getSession();&&
&&&&&&&&&&&&User&sessionUser&=&(User)&session.getAttribute("user");&&
&&&&&&&&&&&&if&(sessionUser&==&null)&{&&
&&&&&&&&&&&&&&&&Cookie[]&cookies&=&req.getCookies();&&
&&&&&&&&&&&&&&&&if&(cookies&!=&null)&{&&
&&&&&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&cookies.&i++)&{&&
&&&&&&&&&&&&&&&&&&&&&&&&if&(cookies[i].getName().equals("login"))&{&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&loginInfo&=&cookies[i].getValue();&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&String[]&infos&=&loginInfo.split("&",&2);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&username&=&infos[0];&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&password&=&infos[1];&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&User&user&=&new&User(username,&password);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&session.setAttribute("user",&user);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&chain.doFilter(req,&res);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&res.sendRedirect("login.html");&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}&&
&&&&&&&&}&&
&&&&&&&&chain.doFilter(reqest,&response);&&
在该过滤器中先从session中取user值,如果没有则判断该客户端是否有名为login的Cookie,如果有表示该用户设置了自动登录,且已经保存了登录信息(即已经登录过)则直接跳转到目标页面,如果以上条件都没有满足,则跳转至登录页面。web.xml文件中Filter的配置代码为:
然后创建登录页面:
&!DOCTYPE&html
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
该登录页面请求Servlet,在Servlet中进行数据的校验等工作:
public&class&LoginServlet&extends&HttpServlet&{&&
&&&&private&static&final&long&serialVersionUID&=&1L;&&
&&&&protected&void&doGet(HttpServletRequest&request,&HttpServletResponse&response)&throws&ServletException,&IOException&{&&
&&&&&&&&this.doPost(request,&response);&&
&&&&protected&void&doPost(HttpServletRequest&req,&HttpServletResponse&res)&throws&ServletException,&IOException&{&&
&&&&&&&&boolean&auto&=&req.getParameter("autoLogin")!=null&&req.getParameter("autoLogin").equals("on")?true:&&
&&&&&&&&String&username&=&req.getParameter("username");&&
&&&&&&&&String&password&=&req.getParameter("password");&&
&&&&&&&&User&user&=&new&User(username&,&password);&&
&&&&&&&&HttpSession&session&=&req.getSession();&&
&&&&&&&&session.setAttribute("user",&user);&&
&&&&&&&&Cookie&cookie&=&&&
&&&&&&&&Cookie[]&cookies&=&req.getCookies();&&
&&&&&&&&if(cookies&!=null){&&
&&&&&&&&&&&&for(int&i&=&0&;&i&&&cookies.length&;&i++){&&
&&&&&&&&&&&&&&&&if(cookies[i].getName().equals("login")){&&
&&&&&&&&&&&&&&&&&&&&cookie&=&cookies[i];&&
&&&&&&&&&&&&&&&&&&&&cookie.setValue(username&+&"&"&+&password);&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&}&&
&&&&&&&&}&&
&&&&&&&&if(cookie&==&null){&&
&&&&&&&&&&&&cookie&=&new&Cookie("login"&,&username&+&"&"&+&password);&&
&&&&&&&&}&&
&&&&&&&&if(auto){&&
&&&&&&&&&&&&cookie.setMaxAge(60*60*24*7);&&
&&&&&&&&}else{&&
&&&&&&&&&&&&cookie.setMaxAge(0);&&
&&&&&&&&}&&
&&&&&&&&res.addCookie(cookie);&&
&&&&&&&&res.sendRedirect("hello.jsp");&&
在该Servlet中完成的工作是将用户信息保存至session并根据逻辑判断操作Cookie。登录成功后页面跳转至欢迎页面hello.jsp:
&&&&pageEncoding="utf-8"&import="helloworld.bean.User"%
&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&HTML&4.01&Transitional//EN"&"http://www.w3.org/TR/html4/loose.dtd"
在保存用户信息时使用到一个简单的JavaBean:User。
以上就是该实验中用到的页面。按照以下步骤进行访问:
(1)&&&&&&&&&&启动项目后,打开浏览器访问项目中的任意页面。如:,发现会被拦截到登录页面,输入登录信息,此时不勾选自动登录,点击登录,页面跳转至hello.jsp。
(2)&&&&&&&&&&关闭浏览器再打开并访问,被拦截到登录页面。此时填写登录信息后勾选自动登录,登录成功后关闭浏览器。
(3)&&&&&&&&&&打开同一浏览器,继续访问,此时发现没有被拦截,原因是上一步中向客户端写了一个Cookie,打开浏览器并访问时,程序读取到用户信息直接放入session,完成了自动登录的功能。
访问.。此时不勾选自动登录,登录成功后,重复步骤一、二,自动登陆功能已经取消。
阅读(...) 评论()用诺顿扫描电脑,每次都有一项cookie风险提示,这是什么?_百度知道
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
用诺顿扫描电脑,每次都有一项cookie风险提示,这是什么?
用诺顿扫描电脑,每次都有一项cookie风险提示,这是什么?
我有更好的答案
没用的东西,是网站储存在你电脑上的数据,可以在ie属性的第一页里面删除掉的
采纳率:20%
ookie是浏览网站时储存在你的计算机里的相关数据,也包括平时登陆邮箱,各网站账户时的账户名,密码,它可以帮助获得更好的体验效果,还可以收集来自用户的使用习惯等等信息
诺顿2010版的产品占用资源很小,只有7M左右,安装速度也很快,只需要几分钟的时间;你可以试用一下
为您推荐:
其他类似问题
您可能关注的内容
cookie的相关知识
换一换
回答问题,赢新手礼包cookie的作用,用途_百度知道
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
cookie的作用,用途
我们老师要我们回答的问题cookie有什么作用,用途每次什么时候运行,有了它会怎样,每次是什么时候写入?没有了它又会怎样?
Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于RFC都已废弃,最新取代的规范是RFC6265cookie主要应用于:一、服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。二、浏览器使用和禁用Cookie用户可以改变浏览器的设置,以使用或者禁用Cookies。&一&微软Internet Explorer方式:1、工具 & Internet选项 & 隐私页2、调节滑块或者点击“高级”,进行设置.&二&Mozilla Firefox方式1、工具&选项&隐私(注: 在Linux版本中,是如下操作:编辑 & 首选项 & 隐私 , 而Mac则是:Firefox & 属性 & 隐私)2、查看源网页3、设置Cookies选项4、设定阻止/允许的各个域内Cookie5、查看Cookies管理窗口,检查现存Cookie信息,选择删除或者阻止它们&三&苹果计算机 Safari1、Safari & 预置 & 安全标签2、选择以下的选项总是 接受 Cookies,永不 接受 Cookies接受 Cookies 仅从您浏览的站点 (例如,不接受来自其它站点的广告) 预设的选项.您可以显示所有驻留在您浏览器中的 cookies,也可随时将它们之一删除。NETSCAPE3、“PREFERENCE\ADVANCED\COOKIES”,在出现的窗口中有三个选项,选择“DISABLECOOKIES”即可关闭COOKIE。在IE中,选择“查看”/“INTERNET选项”/“高级&,在随后出现的窗口中找到“COOKIES”一项,选择“禁止所有的COOKIE 使用”可关闭COOKIE。4、Konqueror如果没有设置cookie列表,请记住在域名前面加入“.”,例如.,否则百度将不会读取cookie(针对KDE 3.3)。Cookies就是服务器暂存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机,本文简单介绍什么是cookies,cookies有什么作用,以及网站利用cookie存在什么问题。cookies作用:许多网站都用新用户注册这一项,有时注册了一下,等到下次再访问该站点时,会自动识别到你,并且向你问好,是不是觉得很亲切?当然这种作用只是表面现象,更重要的是,网站可以利用cookies跟踪统计用户访问该网站的习惯,比如什么时间访问,访问了哪些页面,在每个网页的停留时间等。利用这些信息,一方面是可以为用户提供个性化的服务,另一方面,也可以作为了解所有用户行为的工具,对于网站经营策略的改进有一定参考价值。例如,你在某家航空公司站点查阅航班时刻表,该网站可能就创建了包含你旅行计划的Cookies,也可能它只记录了你在该站点上曾经访问过的Web页,在你下次访问时,网站根据你的情况对显示的内容进行调整,将你所感兴趣的内容放在前列。这是高级的Cookie应用。目前Cookies 最广泛的是记录用户登录信息,这样下次访问时可以不需要输入自己的用户名、密码了——当然这种方便也存在用户信息泄密的问题,尤其在多个用户共用一台电脑时很容易出现这样的问题。另外,有人认为网站利用cookies可能存在侵犯用户隐私的问题,但由于大多用户对此了解不多,而且这种对用户个人信息的利用多数作为统计数据之用,不一定造成用户的直接损失,因此对于cookies与用户隐私权的问题并没有相关法律约束,很多网站仍然在利用cookie跟踪用户行为,有些程序要求用户必须开启cookie才能正常应用。IE浏览器用户可以通过“隐私”选项中的隐私设置的高低来决定是否允许网站利用cookie跟踪自己的信息,从全部限制到全部允许,或者限制部分网站,也可以通过手动方式对具体的网站设置允许或者禁止使用cookies进行编辑。IE浏览器的默认设置是 “中级”-对部分网站利用cookie有限制。个人电脑的cookies设置(对IE浏览器而言)可通过菜单“工具-Internet选项-隐私”来查看和修改。
采纳率:85%
只有服务器的CGI处理程序才知道它们真正的含义。 特别想说明的是,还有一个和cookie相似的文件,它的命令格式为:用户名@网站地址[数字].txt。如笔者计算机中的一个Cookies文件名为:ch@163[1].txt。要注意的是:硬盘中的Cookies属于文本文件,不是程序,得知你的相关信息,就可以做出相应的动作,也不会传送病毒,因此一般用户看来只是一些毫无意义的字母数字组合。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件、密码、浏览过的网页。 硬盘中的Cookies文件可以被Web浏览器读取,且为你所专有,并只能由提供它的服务器来读取、密码就直接登录等等。保存的信息片断以“名/值”对(name-value pairs)的形式储存。 从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,Cookies文件的存放位置为C:Documents and Settings用户名CXP的计算机中,那就是session,它和cookie的作用几乎是相同的,最大的区别是session是放在服务器端的,而cookie是在客户端的。所有知道cookie就应该知道session,它可以记录你的用户ID,因此它在硬盘中存放的位置与使用的操作系统和浏览器密切相关。在Windows 9X系统计算机中,Cookies文件的存放位置为C。 由于Cookies是我们浏览的网站传输到用户计算机硬盘中的文本文件或内存中的数据:WindowsCookies,在Windows NT/2000&#47,如在页面显示欢迎你的标语,或者让你不用输入ID、停留的时间等信息。当你再次来到该网站时,网站通过读取CookiesCookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。你可以再网上在搜索一下session的相关内容,一个“名/值”对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。 Cookies中的内容大多数经过了加密处理
本回答被提问者采纳
只有服务器的CGI处理程序才知道它们真正的含义,为了避免错误,要在程序和前面加上response.Buffer=True。 Cookies的应用 几乎所有的网站设计者在进行网站设计时都使用了Cookie,同时也能更加准确地收集访问者的信息,可以单击“编辑”按钮,将要屏蔽的网站添加到列表中。在“高级”按钮选项中。要注意的是,如果你从来不去这些地方。 由于Cookies是我们浏览的网站传输到用户计算机硬盘中的文本文件或内存中的数据,允许用户输入自己的信息,网站可以完成以下工作:测定多少人访问过,因此它在硬盘中存放的位置与使用的操作系统和浏览器密切相关。在Windows 9X系统计算机中,Cookies文件的存放位置为C: 当给不存在的Cookies集合设置时;Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookies。这些文件通常是以user@domain格式命名的,网站把该用户ID对应的计数器加1,得到用户的来访次数或判断用户是新用户还是老用户。 按照用户的喜好定制网页外观 有的网站设计者。多数的论坛站点需要使用Cookie信息,因为他们都想给浏览网站的用户提供一个更友好的、人文化的浏览环境、密码、浏览过的网页Cookies亦称Cookie Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。 从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行。 多人共用一台电脑的问题 任何公共场合的电脑或者许多在办公室或家里使用的电脑,都会同时被两个以上的人使用。这样,当你用它在网上超市购物时,网上超市或网站会在这台机器上留下一个Cookie,将来也许就会有某个人试图使用你的账户购物,带来了不安全的可能。当然,在一些使用多用户操作系统如Windows NT或UNIX的电脑上,这并不会成为一个问题。因为在多用户操作系统下不同的账户的Cookie分别放在不同的地方。 Cookies被删除时 假如你的浏览器不能正常工作,你可能会删除电脑上所有的临时Internet文件。然而,一旦这样操作以后,你就会丢掉所有的Cookies文件。当你再次访问一个网站时,网站会认为你是一位新用户并分配给你一个新的用户ID以及一个新的Cookie。结果将会造成网站统计的新老用户比发生偏差,而你也难以恢复过去保存的参数选择。 一人使用多台电脑时 有的人一天之中经常使用一台以上的电脑。例如在办公室里有一台电脑、家里有一台、还有移动办公用的笔记本电脑。除非网站使用了特别的技术来解决这一问题,否则,你将会有三个不同的Cookies文件在这三台机器上,而在三台机器上访问过的任何网站都将会把你看成三个不同的用户。 防范Cookies泄密 想知道你访问的网站是否在你的硬盘或内存中写入了Cookies信息吗?只需执行下面的操作步骤,就可以了解和控制你正在访问的网站的Cookies信息。 步骤一 点击IE窗口中的“工具” “Internet选项”,打开“Internet选项”设置窗口; 步骤二 点击“Internet选项”设置窗口中的“安全”标签,然后再点击“自定义级别”按钮,进入“安全设置”窗口; 步骤三 找到“安全设置”窗口中的“Cookies”设置项。“Cookies”设置项下有两个分选项,其中“允许使用存储在您计算机上的Cookies”是针对存储在用户计算机硬盘中的Cookies文件;“允许使用每个对话Cookies(未存储)”是针对存储在用户计算机内存中的Cookies信息。存储在硬盘中的Cookies文件是永久存在的,而存储在内存中的Cookies信息是临时的。要想IE在即将接收来自Web站点的所有Cookies时进行提示,可分别选择上面两个分选项中的“提示”项。当然,你也可以选择“启用”,允许IE接受所有的Cookies信息(这也是IE的默认选项);选择“禁止”,则是不允许Web站点将Cookies存储到您的计算机上,而且Web站点也不能读取你计算机中已有的Cookies。 IE6.0提供了更为可靠的个人隐私及安全保护措施,可以让用户来控制浏览器向外发送信息的多少。在“Internet 选项”窗口中新增了“隐私”选项卡(图1),用户可以在其中直接设置浏览时的隐私级别,按需要控制其他站点对自己电脑所使用的Cookies。如果我们正在浏览的站点使用了Cookie,那么在浏览器状态栏中会有一个黄色惊叹号的标记,双击后可打开“隐私报告”对话框,用户可以在其中查看具体的隐私策略,还可直接点击“设置”按钮后在上述“隐私”选项卡中调节安全隐私级别。 在“常规”选项卡中还增加了“删除Cookies”按钮(图2),方便用户直接清除本机上的Cookies。另外,在“工具” “选项” “高级”选项卡中也增加了一些进一步提高安全性的选项(如关闭浏览器时清空Internet临时文件)。其实,如何更好地保护个人隐私和安全是微软下一代“.NET”战略软件中的关键技术,现在IE6.0已经尝试着迈出了第一步。 另外,由于Cookies的信息并不都是以文件形式存放在计算机里,还有部分信息保存在内存里。比如你在浏览网站的时候,Web服务器会自动在内存中生成Cookie,当你关闭IE浏览器的时候又自动把Cookie删除,那样上面介绍的两种方法就起不了作用,我们需要借助注册表编辑器来修改系统设置。要注意的是,修改注册表前请作备份,以便出现问题后能顺利恢复。 运行Regedit,找到如下键值:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet\ SettingsCacheSpecial PathsCookies,这是Cookies在内存中的键值,把这个键值删除。至此Cookies无论以什么形式存在,我们都不用再害怕了。 (注:新版本Windows可能已经不在此注册表目录下) 最后有必要说明的一点是:杜绝Cookies虽然可以增强你电脑的信息安全程度,但这样做同样会有一些弊端。比如在一些需要Cookies支持的网页上,会发生一些莫名其妙的错误,典型的例子就是你以后不能使用某些网站的免费信箱了。 Cookies欺骗 通过分析Cookie的格式,我们知道,最后两项中分别是它的URL路径和域名,服务器对Cookie的识别靠的就是这两个参数。正常情况下,我们要浏览一个网站时输入的URL便是它的域名,需要经过域名管理系统DNS将其转化为IP地址后进行连接。若能在DNS上进行一些设置,把目标域名的IP地址对应到其它站点上,我们便可以非法访问目标站点的Cookie了。 要进行Cookies欺骗,其实很简单。比如在Win9X下的安装目录下,有一名为hosts.sam的文件,以文本方式打开后会看到这样的格式: 127.0.0.1 localhost 经过设置,便可以实现域名解析的本地化,只需将IP和域名依上面的格式添加到文件中并另存为hosts即可。hosts文件实际上可以看成一个本机的DNS系统,它可以负责把域名解释成IP地址,它的优先权比DNS服务器要高,它的具体实现是TCP/IP协议中的一部分。 参考资料:,不是程序。 Cookies的设置 你可以在IE的“工具&#47.Documents and Settings\用户名\Cookies。 硬盘中的Cookies文件可以被Web浏览器读取,它的命令格式为:用户名@网站地址[数字],使用时需要在前面加上Response或Request。 用于给客户机发送Cookies的语法通常为,网站就能记录下来,并在网站的数据库里对应着你的ID记录当你“买单”时,网站通过ID检索数据库中你的所有选择就能知道你的“购物篮”里有些什么。用户再次来访时。保存的信息片断以“名/值”对(name-value pairs)的形式储存。 通常情况下,网站设计者是借助后台数据库来实现以上目的的。当用户第一次访问该网站时,多少是老用户;测定一个用户多久访问一次网站。如果你使用NetsCape浏览器,则存放在“C,这样当你往“购物篮”中放了新东西时,给应用带来不便:PROGRAMFILESNETS- CAPEUSERS”里面,与IE不同的是,NETSCAPE是使用一个Cookie文件记录所有网站的Cookies。 我们可对Cookie进行适当设置:打开“工具/Internet选项”中的“隐私”选项卡(注意该设置只在IE6.0中存在,也不会传送病毒。你如果需要保存Cookie,如在页面显示欢迎你的标语,或者让你不用输入ID。 网站浏览人数管理 由于代理服务器,其使用方法是: 需要注意的是,只有在服务器未被下载任何数据给浏览器前,浏览器才能与Server进行Cookies集合的数据交换,打开“文件&#47,可以调整到“中高”或者“高”的位置,然后通过这些信息对网站的一些参数进行修改,以定制网页的外观。但也存在一些不够完美的方面,可以将安全级调到“阻止所有Cookies”,并把ID通过Cookie传送给用户:ch@163[1],一个“名/值”对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。 Cookies中的内容大多数经过了加密处理,通常要对第三方Cookie选择“拒绝”,网站在数据库中建立一个新的ID。 在一般的事例中,网站的数据库能够保存的有你所选择的内容、你浏览过的网页、你在表单里填写的信息等;而包含有你的唯一ID的Cookie则保存在你的电脑里,因此一般用户看来只是一些毫无意义的字母数字组合。 Cookies的缺陷 Cookie虽然被广泛的应用,并能做到一些使用其它技术不可能实现的功能;导入导出”,且为你所专有,并只能由提供它的服务器来读取。 Cookies的写入与读取 Cookies集合是附属于Response对象及Request对象的数据集合,你可以对第一方Cookie和第三方的Cookie进行设置,第一方Cookie是你正在浏览的网站的Cookie,第三方Cookie是非正在浏览的网站发给你的Cookie,所以向客户机发送Cookies的代码一般放在发送给浏览器的HTML文件的标记之前。 如果用户要读取Cookies,则必须使用Request对象的Cookies集合。 在电子商务站点中实现诸如“购物篮”等功能 可以使用Cookie记录用户的ID;XP的计算机中、密码就直接登录等等:硬盘中的Cookies属于文本文件;测定访问者中有多少是新用户(即第一次来访),为用户提供了改变网页内容、布局和颜色的权力,按提示操作即可.txt,可以使用IE的“导入导出”功能。如笔者计算机中的一个Cookies文件名为,得知你的相关信息,就可以做出相应的动作,Cookies文件的存放位置为C:&#92,其他版本IE可以单击“工具/如果只是为了禁止个别网站的Cookie,Cookies的数据交换则停止、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。使用Cookie,就会在客户机创建,如果该Cookies己存在,则会被代替。由于Cookies是作为HTTP传输的头信息的一部分发给客户机的,一旦浏览器开始接收Server所下载的数据,user是你的本地用户名,domain是所访问的网站的域名,它可以记录你的用户ID;Internet选项”“安全”标签中的“自定义级别”按钮,进行简单调整),调整Cookie的安全级别。通常情况:WindowsCookies,在Windows NT/2000&#47、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件
为您推荐:
其他类似问题
您可能关注的内容
cookie的相关知识
换一换
回答问题,赢新手礼包

我要回帖

更多关于 java cookie使用 的文章

 

随机推荐