昨天碰到一个怪事,我转发了一条微博之后,当我在不同终端上访问同一个链接的时候,
居然打开的不是同一个链接。电脑网页版和一加2打开的链接是可以打开的(http://blog.sycsec.com/?p=1005
)
GET /?p=1005 HTTP/1.1
Host: blog.sycsec.com
Proxy-Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; ONE A2001 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.121 Mobile Safari/537.36 Weibo (OnePlus-ONE A2001__weibo__7.2.0__android__android5.1.1)
x-user-agent: OnePlus-ONE A2001__weibo__7.2.0__android__android5.1.1
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,en-US;q=0.8
X-Requested-With: com.sina.weibo
HTTP/1.1 200 OK
Server: sae
Date: Sat, 22 Apr 2017 20:36:41 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Link: <http://blog.sycsec.com/?rest_route=/>; rel="https://api.w.org/"
Link: <http://blog.sycsec.com/?p=1005>; rel=shortlink
Via: 15146
Content-Length: 45784
而用我的Nubia7打开同样的这个链接打开的却是http://blog.sycsec.com/mysql注入攻击与防御-2/
,之后返回404。
Not Found
The requested URL /mysql注入攻击与防御-2/ was not found on this server.
有burp截图为证。
请求:
响应:
让我很费解。开始以为是微博版本或者是手机版本的原因(一加2的是7.2版的,而nubia是6.8版),结果当我把一加2的apk文件拿出来放到我的nubia里时依然出现同样的情况。于是我想是不是缓存的原因,我删除了缓存,然而还是没用,最后把微博应用的数据删除了(这下得重新登录了),这次链接才指向了正确的url。这里我说『正确的url』是因为我用网页版微博『右键复制链接』然后通过curl得到的url。
➜ ~ curl "http://t.cn/RXKbciM" [14:21:33]
<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="http://blog.sycsec.com/?p=1005">here</A>.
</BODY>
</HTML>
也许应该是这样的逻辑:发布者把原始链接(但是原始链接到底是什么呢?应该只有发布者知道了吧)放到微博上时,微博将其转换成了http://t.cn/RXKbciM
,这是所有客户端都会展现的,但是这个链接会解析到哪里每个客户端就不同了,可能最开始我是在nubia上打开这个链接的,这个链接被解析到这里http://blog.sycsec.com/mysql注入攻击与防御-2/
,然后后来链接被解析到了http://blog.sycsec.com/?p=1005
,但是我nubia的缓存没有被删除,于是还按照之前解析到了那个不存在的页面(或许是之后才被删的?),但是我的一加2就不存在缓存的问题,因为用它第一次打开那个链接的时候就是服务端修改后的情况http://blog.sycsec.com/?p=1005
————更新—————-
后来通过google搜t.cn
得知这是新浪用的短网址。可以在
http://dwz.wailian.work
这里将原始链接转换成短网址。我尝试了一下http://blog.sycsec.com/?p=1005
,发现它被转换成了http://t.cn/RXKbciM
,而http://blog.sycsec.com/mysql注入攻击与防御-2/
被转换成了
http://t.cn/RX0SdVU
。那是不是微博客户端本地有一个短网站解析器呢?因为我用burp拦截请求的时候发现并没有到t.cn
的请求。