無標題文檔

突破基于 HTTP_REFERER 的防盗链措施

比较郁闷就是某些「小气」的网站,会加上防盗链的功能(特别本人在看 Google Reader 时)。其实防盗链这个技术并不复杂,目前基本就是在服务器端判断 HTTP_REFERER 的位置,如果不是来自本站自身,则拒绝输出( 详细 )。

那么如果考虑突破防盗链的措施,就需要考虑在 HTTP_REFERER 上面做手脚了。PHP 脚本中对应的变量是 $_SERVER['HTTP_REFERER'] ,它存储了 HTTP_REFERER 的值。

由于直接访问目标 URL 资源已经被上述防盗链的措施给屏蔽,所以我们需要个类似网关的玩意去获取。说白了就是编写已经包装过的 HTTP 头的 PHP 脚本。

下面是简单的函数实现:

function getRemoteFile($url, $refer = '') {
    $option = array(
            'http' => array(
                'header' => "Referer:$refer")
            );
    $context = stream_context_create($option);
    return file_get_contents($url, false, $context);
}

这是个比较简单的函数,其功能就是伪造 Referer (使用 stream_context_create 函数 )然后获取对方的数据(使用 file_get_contents,需要开启 allow_url_fopen )。

如果想「复杂」一点,可以使用 sockets 扩展 ,这不在这里的讨论范围以内。

另外,再提供个获取主机名的正则函数

function getHost($url) {
    $result = preg_match('/^http:\/\/([\d|\w|\.]+)\//', $url, $matches);
    if (sizeof($matches) >= 2)  {
        return $matches[1];
    } else {
        return null;
    }
}

再进一步的扩展,可以封装成脚本,然后譬如调用

http://127.0.0.1/proxy.php?url=http://i.am/img

就可以获取那些开启防盗链措施的链接了(再发挥下,使用 Javascript 将图片链接全部替换)。

谁说前端不会设计

淘宝 UED招聘页面 ,相信大家都对他印象很深。

感谢 大雄 同志提供的源文件,利用本人的空闲时间,将这些元素「整合」了下,做了张桌面。

https://friable.rocks/_/2009_11_05/904315beef55.jpg

最后,在这里 打包下载 ,版权归 淘宝 UED 所有。

盗窃案后续

首先,感谢大家的近日来对于我的关心,基本上本人已经从郁闷中走了出来。接下来,说下在本人 从报案至今 的发生的的一些事情。

非常幸运的是,本人的手机安装了 防盗软件 (谁会想到这个时候它会派上用场呢)。其功能就是如果本人的手机换上了未被认证的 SIM 卡,该 SIM 卡的相关信息就会发送到指定的手机中。

其实,第二天(周日)我就收到了 SIM 被更换的消息,并迅速此信息告之了当地的警察(还是那套流程)。警察的答复都在意料之中「有消息我们会联系你的」。

当然本人并没有闲着,尤其是 一直表示歉意小妮子 同学(很多时候都是轮到我安慰她)。她出色的侦查能力,查到了此号码的归属地为「江苏,苏州」。进一步的,继续使用「非常规手段」,查到了次此 SIM 卡的用户信息(包括真实姓名、身份证号码、身份证地址等)。

这是个重大的突破,本人对此也非常的激动,于是今晚(周二)很早下班再次去公安局汇报此事。小妮子 事前嘱咐本人,先不要说我们掌握的情况,先打探下警察方面的进展。

向他们询问案件的进展,我们亲爱的人民警察一脸的无辜样:「您提供的手机号得汇报上级,经领导批准以后才能查的」。对此,本人早已经是意料之中,情理之外。

万般无奈之际,本人将目前掌握告诉警察,他表示非常的惊讶(他是否会认为我「上头有人」?)。其表示将会在验证提供的信息以后,并采取进行进一步的行动(娘希匹,第一步都没有跨出去,就想着进一步了?)。

当本人询问是否能主动联系此 SIM 卡持有人,并用现金赎回本人的笔记本、手机等物品时,那位神勇的警察叔叔非常明确的表示,「那是你们单方面的事情,我们无权过问。不过如果这样能找回失物,那也件未尝不可」(真他妈后悔怎么没有录音)。

本人彻底的对警察已经失望,甚至绝望。

在回去的路上和 小妮子 商量,是否直接联系此人。经过商量以后,我决定赌一次,于是找了个公用电话。

电话通了,接电话的人声音听起来非常的年轻(和本人期望的一样,但不确定是否就是嫌疑人)。在说明情况以后,此人表示对此并不之情,他也是刚购买此手机。

在本人的「恐吓和威胁」下,此人明显感到有些慌张,甚至说话感觉有点结巴(九零后,丫的心理素质就是差)。顺水推舟,本人暗示「购买赃物也是犯罪」(不记得我们伟大的 Party 制定的法律中是否有这样一条)。

继续恐吓:「此手机开关机记录都在本人的监视范围内,本人并将其提交给了警方,相信警方找到你只是个时间问题。如果你并不是嫌疑人,请将此手机退还给卖家,或者直接叫卖家和我联系沟通。」

接下来,本人并不想多说(其实也怕露怯),最后说了句「给你时间考虑下,有空我会再打你电话的」。

从目前的情况来说,找回手机的可能性会比笔记本大些。值得玩味的是其阐述的内容:本人周六晚手机被盗,周日下午就被购买。本人认为,其一,要么是此人在说谎,此人必定和嫌疑人有关系(有什么理由说没有呢);其二,要么就是犯罪团伙已经形成了 高效率的团队 (此人描述他收到物品,包括手机、充电器、包装都是全套的)。

要弄清楚此人有无说谎其实很简单,因为之前 妮子 了解的情况是此号码在杭州并没有通话记录,如果明日(周三)查询此号码在杭州已有通话记录,那么必定上述第一种情况无疑(我已经不会考虑再联系警察了)。

不管怎样,本人解决方案的天平已经倾向于私了了。在这种环境下,完全依靠警察至少目前在本人看来是不靠谱的。

在这里再提供个说法,就是警察在做失物笔录的时候,他们会尽量的压低价格,以此来隐瞒上报案情的严重程度。原因很简单,他们当然期望自己管辖的社区了然无事(原来他们也有 KPI),但是如当真采取这一做法,其和·谐程度真当让人叹为观止。

上述的观点真实性无法判断,所以烦请各位读者自鉴。咨询过律师(也可以自行搜索网络),就是在国内对于盗窃案件的判定程度是非常底的(尤其嫌疑人盗窃是私人物品时,国家的另谈),如不触及人身安全就会按照民事案件处理。

那么,接下来还能说什么呢?本人既然已经联系上了和失物有关的人员(不管是知情),我会在其「考虑清楚」以后再次联系他。如有必要,我会和其商定赎金 -- 这已经是本人目前为止最好的打算了。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章