欢迎您光临韦德国际!

韦德国际 > 科技 > ​新网络隐私系统保护你的信息不会泄漏到其他网站

​新网络隐私系统保护你的信息不会泄漏到其他网站

时间:2020-01-26 23:38

在浏览网站的时候,网站上大量的代码可能对个人私隐构成危险。在一个看似合法和可信任的网页上隐藏这些会盗取个人资料的代码,或在一个普通的网站上意外地外泄了资料亦不罕见。如果是由 Google、Mozilla 和其他研究人员得到这些资料,你又会不会觉得好过一点(最少知道拿去做什么)?它们推出了新的 COWL(Confinement with Origin Web Labels / 原始网页限制标签)系统,防止 JavaScript 把数据分享到其他未被核准的网站;即使数据被完全读取,亦不会被散播到其他地方。理论上,使用者日后会更难被网页绑架,并在不知情下被读取敏感信息;简单地说,起码知道你的资料将会何去何从。大家不需要等太久就会得到这系统,因为它会在 10 月 15 日在你的 Chromium 或 Firefox 浏览器上更新。但大家不要想着这 COWL 会马上有效,因为网页开发者仍然需要时间把网页加入 COWL。在正式运作之后,我们就可以不用担心看似可以信任的网站会偷偷地把个人资料外泄。[图片来源:Getty Images]

前言

说一下这个想法的由来。其实最初目的不是为了获取天气的,这只是一个练习而已。最初是想自动获取公司的出勤情况,提醒我前一天有没有忘记打卡的。公司打卡是由网站可以查询的,有时忘记了或者系统出错,可能当天打卡没有打上,不去查看的话就记为缺勤了(这可是关乎工资啊啊啊啊),于是想到了每天定时执行一次查询任务,要是差到有缺勤记录就在登录系统时发出提示。所以作为一个初学者我就自然想到怎么获取网站固定信息了。由于在公司是内网,无法在家测试,所以就写个查询天气的脚本来确定基本的脚本结构。

Cookie的目的是为用户带来方便,为网站带来增值,一般情况下不会造成严重的安全威胁。Cookie文件不能作为代码执行,也不会传送病毒,它为用户所专有并只能由创建它的服务器来读取。另外,浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此,Cookie不会塞满硬盘,更不会被用作"拒绝服务"攻击手段。

原理

原理呢,其实就是字符串的处理。我知道可以用网站的api发出请求,然后返回数据,这样更加方便快捷。但是,我不是学软件的不会这个,233333。当然 这不是理由,可以去学,只是有更简便的方式。我选择将网页源码下载下来然后分析字符获取字段,毕竟如果登录网页能看到信息,那么在网页的html里应该也有这个字段。那么现在大概的步骤就明确了:


  1. 下载网页源码。
  2. 查看源码,分析关键字段的特征,从而能够查找匹配。

这种方式只适合不需要网页交互的查询,假如查询时还要输入密码这些就不能查到了。只要在浏览器直接输入网址就能访问的网页可以用这种方法查询需要的信息。

但是,Cookie作为用户身份的替代,其安全性有时决定了整个系统的安全性,Cookie的安全性问题不容忽视。

详细分析

在这里我选取中国天气网上海天气来作为查询的网址。首先用浏览器将网页另存为html格式,然后查看文本内容(在这里推荐使用代码编辑器查看,浏览器有浏览网页源码功能的也可以查看。我将网页文件传到树莓派用vim查看了,后面perl也是在树莓派上写)。用vim查看代码,然后搜索日期,天气应该是按日期来排的。太幸运了,直接就搜到了:

图片 1

天气信息所在行

实在是easy啊。那么我们来分析这一行。

<input type="hidden" id="hidden_title" value="10月27日20时 周五 晴转多云 16/22°C" />

这一行的分析思路有以下几点:

  • 这一句是通过搜索日期的到的,那么我们可以在代码中使用查找日期来定位这一行。
  • 我们需要的天气信息在value=关键词后面用双引号包起来的字段,我们可以在定位行后在行里定位字符串value=,相信这不难做到。最简单粗暴的方式就是用数组把每个字符保存起来,然后一个一个遍历。这一行的字符也不多,占用内存也不大。
  • 我还发现,我需要的字段被双引号"包起来,那么我联想到perl中的split函数。可以将这一行用split函数将字符分解为以"隔开的列表,这样我们只要访问列表元素就可以了。

Cookie欺骗 Cookie记录了用户的帐户ID、密码之类的信息,通常使用MD5方法加密后在网上传递。经过加密处理后的信息即使被网络上一些别有用心的人截获也看不懂。然而,现在存在的问题是,截获Cookie的人不需要知道这些字符串的含义,只要把别人的Cookie向服务器提交,并且能够通过验证,就可以冒充受害人的身份登陆网站,这种行为叫做Cookie欺骗。 非法用户通过Cookie欺骗获得相应的加密密钥,从而访问合法用户的所有个性化信息,包括用户的E-mail甚至帐户信息,对个人信息造成严重危害。Cookie截获 Cookie以纯文本的形式在浏览器和服务器之间传送,很容易被他人非法截获和利用。任何可以截获Web通信的人都可以读取Cookie。 Cookie被非法用户截获后,然后在其有效期内重放,则此非法用户将享有合法用户的权益。例如,对于在线阅读,非法用户可以不支付费用即可享受在线阅读电子杂志。

代码实现

首先使用shell的curl命令下载网页。这里解释一下为什么不用perl的命令(当然是因为技术不好啊_)。perl对网络的操作好像需要一些模块,不知道这些模块是安装perl时自带的还是需要额外添加,也不确定公司的perl是不是带有这些模块。但是shell的curl命令是自带的,我就使用shell命令来下载网页了。在perl中调用shell命令表达如下:

    `curl -o wether.html http://www.weather.com.cn/weather/101020100.shtml`

注意两边的单引号!网址中的101020100.shtml指的是上海的天气页面,不清楚具体城市编码方式,可以一个一个去网站查询看。命令中的-o wether.html参数指的是将下载的网页另存为wether.html文件。
下载好网页后就可以以文本方式读取网页内容了。在处理文件字符之前,我们需要获得查询的关键字,也就是日期。获得关键字后去读取文件每一行,并判断当前行是否包含关键字,包含关键字则将当前行分解为列表,得到列表就可以输出天气信息了。
最后得到代码如下:

#!/usr/bin/perl -w
 `curl -o wether.html http://www.weather.com.cn/weather/101020100.shtml`;
 if ( ! open HTML,'<','wether.html' ) {
       die "cannot open:$!";   #文件打开失败提示
 }
 $date =`date`;  #获取当前时间
 chomp($date);
 @date_list = split /s+/,$date; #将获取到的时间以空格分解,提取出日期。也可以通过控制
                                 #获取时间命令的参数来直接获得日期。比如  date "+%m月%d日"
                                 #这样就可以直接获取"x月x日"格式的时间
while (defined ($line = <HTML>)) {      #读取文件每一行到$line变量里
$gre=(grep /$date_list[2]/,$line) + (grep /value=/,$line);#如果有日期,又有value关键词,则认为找到了
if ($gre == 2){
      @val_list=split /"/,$line;      #将文本行以"为分隔符分解字段
      print $val_list[5]."n";        #天气信息在列表元素5里
     last;

}
}

close HTML;

以上就是代码实现过程,很简单的几行就搞定了。方法很偏门啊,慎用。

Cookie截获的手段有以下一些:

上一篇:UE 推出二代目 Roll 蓝牙喇叭,除了变大声外好像没啥改变 下一篇:没有了