关键词竞争度高
理论上,在新站上使用没有权重的网站非常困难,但我们仍然可以通过过去的经验来尝试。例如:
同样,在目标关键词中填写优质内容。
将目标关键词中包含的URL放在新车站主页、网站导航的重要位置。(搜索引擎搜索URL的位置、重要性和评估。)
适当增加,反向链接(内部链高质量权威的外部链)。
小策略:使用权重高的现有域名:重定向到此目标URL。网站内容战略:1,丰富的网站内容:丰富网站内容是很重要的。网站内容越丰富,网站越专业,用户越喜欢,搜索引擎也越喜欢;2.添加部分原创内容:采集系统将垃圾场制作成了生产垃圾场,因此完全没有原创内容的网站内容丰富,但也不喜欢搜索引擎。所以一个网站应该尽可能地拥有一些原创内容。
在之前引见的流量挟制文章里,曾提到一种『HTTPS 向下降级』的计划 —— 将页面中的 HTTPS 超链接全都替代成 HTTP 版本,让用户一直以明文的情势举行通讯。
看到这,或许人人都邑想到一个典范的中间人进击东西 —— SSLStrip,经由过程它确切能完成这个效果。
不过本日解说的,则是完全差别的思绪,一种更有用、更先进的处理计划 —— HTTPS 前端挟制。
后端的缺点
在过去,流量挟制基本经由过程后端来完成,SSLStrip 就是个典范的例子。
相似其他中间人东西,纯后端的完成只能操控最原始的流量数据,这严峻障碍了向更高条理的生长,面对浩瀚难以处理的问题。
动态元素怎么办?
如何处置惩罚数据包分片?
机能斲丧可否下降?
……
动态元素
在 Web 刚涌现的年代里,SSLStrip 如许的东西照样大有用武之地的。当时的网页都以静态为主,构造简朴条理清楚。在流量上举行替代,完全能够胜任。
但是,现在的网页日趋庞杂,剧本所占比重越来越多。假如仅仅从流量上着手,明显力不从心。
var protocol = ‘https’;
document.write(‘Login’);
纵然异常简朴的动态元素,后端也毫无招架之力。
分片处置惩罚
分块传输的道理人人都邃晓。关于较大的数据,一口气是没法传完的。客户端顺次收到各个数据块,终究才合并成一个完全的网页。
由于每次收到的都是完整的碎片,这给链接替代带来很大的贫苦。加上不少页面并不是范例的 UTF-8 编码,因而更是难上加难。
为了能顺利举行,中间人一般先网络数据,比及页面吸收完全,才入手下手替代。
假如把数据比作水流,这个代办就像大坝一样,阻拦了络绎不绝往下流的水,直到蓄满了才入手下手开释。因而,下流的人们需忍耐良久的干旱,才比及水源。
机能斲丧
由于 HTML 兼容浩瀚汗青遗留范例,因而替代事情并不是是件轻松事。
种种庞杂的正则表达式,斲丧着不少的 CPU 资本。只管用户终究点击的只是个中一两个链接,但中间人并不晓得将会是哪一个,因而仍需剖析全部页面。这不得不说是个悲哀。
前端的上风
假如我们的中间人能打入到页面的前端,那末状况会不会有所改善呢?
分片处置惩罚
起首,要派一位特务到页面里。这是异常随意马虎办到的:
不像超链接遍及在页面遍地,剧本插进去到头部即可运行了。所以我们基本没必要全部页面的数据,只需革新下第一个 chunk 便能够,后续的数据依然交给体系转发。
因而,全部代办的时刻险些稳定!
动态元素
很好,我们随意马虎渗透到页面里。但接着又如何提议打击?
既然到了前端里,要领就相称多了。最简朴的,就是遍历超链接元素,将 https 的都替代成 http 版本。
这个主意确切不错,但仍停留在 SSLStrip 头脑形式上。照样『替代』这条路,只是从后端搬到前端罢了。
只管这个要领能胜任大多场所,但依然不是最圆满的。我们并不晓得动态元素什么时刻会增添进来,因而须要开启定时器不停的扫描。这明显是个很挫的方法。
机能优化
事实上,超链接无论是谁发生的、什么时刻增添进来的,只需不点击,都是不起作用的。所以,我们只需体贴什么时刻去点击便能够 —— 假如我们的程序,能在点击发生的第一时刻里掌握住现场,那末以后的流程便可由我们决议了。
听起来好像很玄乎,不过在前端,这只是小菜一碟的事。点击,不过个事宜罢了。既然是事宜,我们用最基本的事宜捕捉机制,即可将其轻松拿下:
document.addEventListener(‘click’, function(e) {
// …
}, true);
DOM-3-Event 是个异常有意义的事宜模子。之前用它来完成『内联 XSS 阻拦』,现在一样也能够用来挟制链接。
我们捕捉全局的点击事宜,假如发明有落在 https 超链接上,坚决将其……阻拦?
假如真把它阻拦了,那新页面就不会涌现了。固然你会说,能够自身 window.open 弹一个,横竖点击事宜里是能够弹窗的。
不过,请别忘了,并不是一切的超链接都是弹窗,也有不少是直接跳转的。你也会说能够修改 location 来完成。
但要识别是『弹窗』照样『跳转』,并不简朴。除了超链接的 target 属性,页面里的 元素也会有影响。固然,这些相信你都能处置惩罚好。
但是,实际未必都是那末简朴的。有些超链接自身就绑定了 onclick 事宜,甚至在个中 return false 或 preventDefault,屏障了默许行动。假如我们不顾及这些,依然模仿跳转或弹窗,那就违犯页面的志愿了。
事实上,有一个异常简朴的方法:当我们的捕捉程序运行时,新页面还远没涌现,这时刻仍有时机修改超链接的 href。待事宜冒泡完成、实行默许行动时,浏览器才读取 href 属性,作为终究的效果。
因而,我们只需捕捉点击事宜,修改超链接地点便能够了。至因而跳转、弹窗、照样被屏障,基本没必要我们体贴。
就那末简朴。由于我们是在用户点下去以后才修改,所以浏览器状态栏里,显现的还是本来 https !
固然,点过一次以后,再把鼠标放到超链接上,状态栏里显现的就是修改后的了。
为了能继承忽悠,我们在修改 href 以后的下个线程周期里,把它改返来。由于有了肯定延时,新页面并不受影响。
var url = link.href; // 保留原始地点
link.href = url.replace(‘https://’, ‘http://’); // 暂时换成 http 的
setTimeout(function() {
link.href = url; // 新页面翻开后,复原返来
}, 0);
如许,页面里的超链接一直都是一般的 —— 只要用户点下的霎时,才暂时假装一下。
更多阻拦
除了经由过程超链接,另有其他体式格局接见页面,我们应只管多的举行监控。比方:
表单提交
window.open 弹窗
框架页面
…..
表单提交
表单提交和超链接异常相似,都具有事宜,只是将 click 换成 submit,href 换成 action 罢了。
剧本弹窗
函数挪用的最简朴了,只需一个小钩子即可搞定:
var raw_open = window.open;
window.open = function(url) {
// FIX: null, case insensitive
arguments[0] = url.replace(‘https://’, ‘http://’);
外链的时代即将被终止:那些迷茫的站长可以看这里了
明确核心关键词后,我们要搜索长尾关键词。寻找长尾关键词的方法是从用户的角度思考。也就是说,把自己当成用户,想象通过什么单词找到网站。分享关键词也是优化中常见的技术,通过该技术可以在网站上获得更多的流量。
raw_open.apply(this, arguments);
}
框架页面
由于我们把主页面降级成 http 了,但内里的框架地点还是本来的。由于协定差别,这会发生跨域问题,致使页面没法一般事情。
所以我们还要把页面里的框架,也都转型成 http 版本,确保能和主页面融为一致。
但框架和之前的那些差别,由于它是自动加载的,而且也没有一个行将加载的事宜。假如比及框架加载完了再去处置惩罚,说不定已入手下手报跨域错误了。而且还会白白的糟蹋一次加载流量。
因而,我们必需让框架一涌现,就马上替代掉地点。
这在过去是个很辣手的问题,但是 HTML5 时期给我们带来了新愿望 —— MutationEvent。用它即可及时监控页面元素,之前也尝试过一些实验。
固然,纵然 MutationEvent,偶然也会有延时脱漏。为了能完全防止涌现 https 框架页,我们继承运用 HTML5 带来的一项新技术 —— Content Security Policy,由于它是浏览器原生支撑的,因而实行的异常完全。
在我们的代办返回头中,加上以下 HTTP 头部,即可圆满阻拦 https 框架页了:
Content-Security-Policy: default-src * data: ‘unsafe-inline’ ‘unsafe-eval’; frame-src http://*
处理了框架页的问题,我们就可以胜利挟制支付宝登录页的账号框 IFrame 了!
后端合营
经由过程前端的 XSS 剧本,我们随意马虎处理了过去种种辣手的问题。但应战并未就此结束,我们仍面对着浩瀚难题。
如何通知代办
只管在前端上面,我们已避开了种种进入 https 的门路,让要求以明文的情势交给代办。但代办又如何决议,这个要求用 https 照样 http 转发呢?
传统的后端挟制之所以能准确转发,那是在替代超链接的时刻,已做下纪录。当涌现纪录中的要求,就走 https 的转发。
而我们的挟制在前端,而且只发生在点击的一霎时。纵然马上去通知中间人,某个 URL 是 https 的,这时刻也来不及了。
通知中间人是必需的。但我们能够用一个奇妙的要领,没必要零丁发送音讯 —— 我们只需在转型后的 URL 里,做个小暗号便能够了。
现代办发明要求的 URL 里有这个暗号,它天然就懂了,直接走 https!
由于把页面从 https 降级到了 http,因而相干要求的referer也变成 http 版了。所以,中间人应只管把 referer 也修改返来,防止被服务器发觉。
隐蔽假装
不过,在 URL 里加标记的要领,也有很大的缺点。
由于页面的 URL 会在地点栏里显现出来,所以用户会看见我们的暗号。固然,我们能够运用一些迷惑性的字符,比方 ?zh_cn、?utf_8,?from_baidu 等等,更好的诳骗用户。
固然,假如你以为照样不满意,也有方法让这些碍眼标记尽快消逝:
if url has symbol
history.replaceState(…, clear_symbol(url) )
HTML5 为我们供应了修改地点栏的才能,而且无需革新。这些刁悍的功用,现在都能够在前端应用起来了。
重定向挟制
固然,光靠前端的挟制,照样远远不够的。实际中,另有另一种很罕见的体式格局,那就是重定向到平安页面。
细致追念下,日常平凡我们是如何进入想上的网站的。比方支付宝,除非你有珍藏,不然就得自身敲入 www.alipay.com 或 www.zhifubao.com,当你回车进入时,浏览器又如何晓得这是个 HTTPS 的网站呢?
明显,第一个要求还是一般的 HTTP 协定。固然,这个 HTTP 版的支付宝确实存在,它的唯一功用就将用户重定向到 HTTPS 版本。
当我们的中间人一旦发明有重定向到 HTTPS 网站的,固然不愿望用户走这条不受自身掌握的路。因而拦下这个重定向,然后以 HTTPS 的体式格局,猎取重定向后的内容,末了再以 HTTP 明文的体式格局,复兴给用户。
因而在用户看来,一直处于 HTTP 网站上。
不过,现在的 Web 里增添一个新的平安范例:HTTP Strict Transport Security。假如客户端收到这个头部,以后一段时刻内接见该站点,就一直经由过程 HTTPS 的体式格局。
所以我们的中间人一旦发明有这个字段,就得坚决将其删除。
固然,用户直接敲网址的并不罕见。大多都是搜刮引擎,然后直接从第一个效果里进来了。
比较悲剧的是,国内的搜刮引擎险些都是 HTTP 的。在用户接见搜刮页面的时刻,我们的 XSS 早已隐蔽在个中了,因而从中点出来的任何一条效果,都是进不到官方的 HTTPS 里的:)
除了搜刮页面,不少相似 hao123 之类的网址大全,大多也未开启 HTTPS。因而从中导流的网站,都面对着被中间人挟制的风险。
防范步伐
引见了进击要领,接着解说预防步伐。
剧本跳转
事实上,无论是前端挟制照样后端过滤,仍有不少的网站没法胜利。比方京东的登录:
它是经由过程剧本跳转到 HTTPS 地点的。而浏览器的 location 是个及其特别的属性,它能够被屏障,但没法被重写。因而我们难以掌握页面的跳转状况。
假如非要挟制京东页面,我们只能运用白名单的体式格局,特别看待该站点。但如许就大幅增添了进击本钱。
殽杂明文
固然,不难发明京东的登录剧本里,URL 是以最直白的明文涌现的。所以我们应用 SSLStrip 的体式格局,对剧本里的 https:// 的文本举行替代,也能起到肯定的作用,毕竟大多剧本都对此毫无预防。
但关于轻微庞杂一点的剧本,比方经由过程字符串拼接而成的 URL,那末就难以实行了。
所以在平安须要较高的场所,无妨把一些主要的地点举行简朴的处置惩罚,中间人就没法运用通用的体式格局来进击。而必需针对站点举行特别看待,从而进步进击本钱。
只管多的 HSTS
之前提到 HSTS 头。只需这个字段涌现过一次,浏览器在很长时刻里都邑只用 HTTPS 接见站点。因而,我们只管多的开启 HSTS。
实际中的挟制并不是都是 100% 胜利的,上述提到,运用剧本跳转很随意马虎涌现脱漏。所以,只需逮住用户一次脱漏,HSTS 便能够让以后的页面降级完全失效了。
进击演示
由于是前端挟制,所以 Demo 有两个文件:一个前端代码,另一个后端剧本(NodeJS)。
相干源码:https://github.com/EtherDream/https_hijack_demo
比拟之前写的流量挟制演示,这里功用越发专注,不再供应分外的挟制门路(比方 DNS 等)。
想测试实在异常简朴,只需设置浏览器代办,即可模仿 HTTP 的挟制:
不嫌贫苦的话,也能够在 Linux 内核的体系上测试,转发 80 到本机即可。道理都是一样的。
我们随意找一个 HTTP -> HTTPS 网站做测试。
得益于前端剧本的上风,我们把鼠标放到登录超链接上,状态栏显现的还是原始 URL:
在我们点击的霎时,潜伏页面中的 XSS 钩子触发了,胜利把我们带到中间人假造的 HTTP 登录页面里。
固然,由于 URL 参数许多,地点栏里的谁人暗号看不到了。
光荣的是,淘宝的登录页面未举行地点推断,被降级后的页面依然能登录胜利!
固然之前也说了,并不是一切的页面都能挟制胜利。
现在越来越多的网站都已注重,因而前端的平安性检测也随之而生。仅仅经由过程一个东西,完成大规模通用化的挟制,将来会越发难题。
但先比传统的纯后端完成,前后连系的计划能够带来更大的发挥空间。
长尾关键词的特点是字数比较长。我们在优化网站时,通常会将长尾关键词融入句子中。长尾关键词的特点是针对性强,有扩展性,范围广。长尾关键词遵循“细”原则。去意味着搜索引擎不够,长意味着搜索引擎不多,但用户的目的性强,实现的效果也非常明显。网站SEO优化的六个主要阶段。第一阶段:关键词选择;第二阶段:改善网站体系结构;第三阶段:网站内容战略;第四阶段:优化和改善网页细节;第五阶段:制作和提交网站地图;第六阶段:制定附加反向链接计划。
打破关键词排名瓶颈的10大解决方案
本网站部分素材来源网络,如有侵犯,请联系删除!作者:wesipy,如若转载,请注明出处:http://www.kpxlt.com/archives/24592