HTTP劫持 方面了解和学习

HTTP劫持有哪些类型

答:说道HTTP劫持,我们可以联想到DNS劫持,这两种劫持都是,运营商通过某些方式篡改了用户正常访问的网页,插入广告或者其他一些杂七杂八的东西。

DNS劫持:

一般而言,用户上网的DNS服务器都是运营商分配的,所以,在这个节点上,运营商可以为所欲为。

例如,访问http://jiankang.qq.com/index.html,正常DNS应该返回腾讯的ip,而DNS劫持后,会返回一个运营商的中间服务器ip。访问该服务器会一致性的返回302,让用户浏览器跳转到预处理好的带广告的网页,在该网页中再通过iframe打开用户原来访问的地址。

 

HTTP劫持:

在运营商的路由器节点上,设置协议检测,一旦发现是HTTP请求,而且是html类型请求,则拦截处理。后续做法往往分为2种,1种是类似DNS劫持返回302让用户浏览器跳转到另外的地址,还有1种是在服务器返回的HTML数据中插入js或dom节点(广告),实际是修改了数据流。

    在用户角度,这些劫持的表现分为:

    1、网址被无辜跳转,多了推广尾巴;在访问地址后面多了?xxxx之类的推广尾巴

    2、页面出现额外的广告(iframe模式或者直接同页面插入了dom节点)

 

HTTP劫持的应对办法是:

1.在页面中做检测,一但发现有dom植入或者检测当前窗口层级,如果嵌套在iframe里面,则需检查url白名单,如果不是嵌套在白名单内的iframe里,则调用location重定向

2.使用https,一劳永逸

 

 

8.301,302重定向的使用场景

301是永久重定向,使得搜索引擎在抓取新内容的同时将旧的网址替换为重定向后的网址,可缓存。

而302是临时重定向,使得搜索引擎会抓去新的内容却保留旧的网址

 

适用场景

301:域名切换、HTTP迁移到HTTPS

302:未登录用户访问个人中心时重定向到登录页面、404页面提示后跳转到首页

 

场景:如果我有一短连接,用户访问的时候需要重定向到短连接对应的网址。这种情况下,你会考虑用301还是302?

当时没有什么思路,面试官的想法是,301虽然可以缓存,但是我服务器又不值钱。。。 302的话,可以获取到一些用户统计数据,

显然数据更有价值。具体的,还是看公司业务场景吧。

你可能感兴趣的:(Java)