http劫持

什么是网站劫持

非 Y 不嫁゛ 提交于 2020-02-28 17:10:32
百度搜索流量事件是网站劫持的其中一种表现。网站劫持还会导致以下问题: 用户输入正常网址跳转到其它地址,导致用户无法正常访问,网站流量受损; 通过泛域名解析生成大量子域名共同指向其它地址,跳转到非法网站,造成网站权重降低; 域名被解析到恶意钓鱼网站,导致用户财产损失,造成客户投诉; 网站经常弹出广告,影响客户体验,造成信誉度下降。 那么究竟什么是网站劫持,又有哪些网站劫持的方式呢? 搜索引擎劫持 搜索引擎劫持简称搜索劫持,其实就是从搜索引擎来的流量自动跳转到指定的网页。可以通过未经用户授权,自动修改第三方搜索引擎结果的软件实现,通常这类程序会在第三方搜索引擎的结果中添加自己的广告或加入网站链接获取流量等。 整站劫持 劫持者通过在网站页面载入js或web服务器内植入代码,全局劫持网站,导致整个网站跳转到其他网址。 关键词劫持 比如百度搜索某网站关键词,结果百度搜索后的结果是正确的,但是点击进去之后却跳转到别的非法网站上,并且此类劫持方式之后针对一部分关键字进行跳转,劫持方式比较隐蔽。 快照劫持 ***通过技术手段拿到网站 FTP 权限或者数据库权限植入代码、添加劫持脚本,把他想要的内容写进一个页面代码里,在首页Head标签下调用,当搜索引擎访问网站的时候抓取到网站的标题-关键词-描述时,就会抓取到他设定的内容。 image.png 网络劫持 DNS劫持(域名劫持)

302 重定向和网址劫持

↘锁芯ラ 提交于 2020-01-20 02:07:38
301 redirect: 301 代表永久性转移(Permanently Moved) 302 redirect: 302 代表暂时性转移(Temporarily Moved ) 一、案例 运营商的nginx 拦截请求,返回302 location:http://xxx.js 然后执行里面的js 二、HSTS 通常将 HTTP 请求 302 跳转到 HTTPS,但有问题: 1.不安全,302 跳转会暴露用户访问站点,易被劫持。 2.多增加一次访问,使得客户端响应速度慢。302 跳转需要一个 RTT(The role of packet loss and round-trip time),浏览器执行跳转也需要时间。 302 跳转是由浏览器触发的,服务器无法完全控制,这个需求导致了 HSTS(HTTP Strict Transport Security)的诞生。HTSP 就是添加 header 头, 告诉浏览器网站使用 HTTPS 访问,支持HSTS的浏览器就会在后面的请求中直接切换到 HTTPS。 nginx添加HSTS支持 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; 来源: https://www.cnblogs.com/yuyutianxia/p

史上最详细前端安全

会有一股神秘感。 提交于 2020-01-20 01:48:47
网络安全 前端不需要过硬的网络安全方面的知识,但是能够了解大多数的网络安全,并且可以进行简单的防御前两三个是需要的 介绍一下常见的安全问题,解决方式,和小的Demo,希望大家喜欢 网络安全汇总 XSS CSRF 点击劫持 SQL注入 OS注入 请求劫持 DDOS 在我看来,前端可以了解并且防御前4个就可以了(小声逼逼:大佬当我没说) XSS Cross Site Scripting 又叫做跨站脚本攻击,本身应该叫做CSS,但是由于CSS被占用,无奈下叫做XSS what is XSS? 我们先从字面意义上看一下,跨站->顾名思义就是我们从一个网站跑到了另外一个网站上,脚本->也就是我们往页面中写了脚本内容,可以理解为写了js代码,那么最后我们对网站造成了攻击 例如: 我们在登录了一个网站之后,一般都会把登录状态保存在cookie中,当我们去访问另外一个网站的时候,就会读取到cookie XSS危害 利⽤虚假输⼊表单骗取⽤户个⼈信息。 利⽤脚本窃取⽤户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。 显示伪造的⽂章或图⽚。 简单演示 // 普通 http://localhost:3000/?from=china // alert尝试 http://localhost:3000/?from=<script>alert(3)</script> // 如果可以弹出3

会话劫持漏洞小结——cookie劫持的方式、属性、原理、危害及防御

戏子无情 提交于 2019-12-29 22:37:09
会话劫持 概念 会话劫持(Session hijacking)是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。会话劫持的第一步是取得一个合法的会话标识来伪装成合法用户。 注:Session ID一般都设置在cookie 步骤 目标用户需要先登录站点 登录成功后,该用户会得到站点提供的一个会话标识SessionID 攻击者通过某种攻击手段捕获Session ID 攻击者通过捕获到的Session ID访问站点即可获得目标用户合法会话 原理图 获取cookie 了解cookie接口:找到Session ID位置进行破解 暴力破解:尝试各种Session ID,直到破解为止 预测:如果Session ID使用非随机的方式产生,那么就有可能计算出来 窃取:XSS攻击、使用网络嗅探(中间人攻击)等方法获得 XSS攻击劫持cookie 中间人攻击劫持cookie 危害 冒充其他人做事情:被冒充的人的权限越大,可以做的事情越多,比如:更改用户信息、进行转账、购买物品 对网站的影响:因为投诉等原因,会出现信誉下降、客户认为网站本身不可信 cookie机制 在动态网页语言中,某个用户(浏览器)访问(登陆)后,可以一直记录状态。这种状态浏览器使用Cookie来保存。

大龄程序员技术管理路上的悲喜总结

人走茶凉 提交于 2019-12-25 19:13:24
生在中国这片热土,我们做程序开发的人要面临很多的挑战。只要生命不息,挑战就永远不会停止。 比如最近疯传的 35 岁程序员送外卖。这明显点出了在中国搞开发,要面临的其中之一挑战:年龄。 在整个 IT 领域,大多数的开发者都属于普通人。只有极少数部分人能站在技术的尖端引领技术的前进与走向。那么,普通的开发者,又很容易被新人替换。新人更经济实惠,压力小。而老开发人员技术的天花板无法打破的情况下。要面临跟着一群小朋友一起起早贪黑的工作模式。甚至于会出现自己一把年纪,上面的领导比自己还小好多岁的窘境。 肯定有人会说我们这群老人矫情。但是,又有几人能做到内心毫无波澜呢? 本篇博文主要是针对我们这群普通的开发者处境所写。请允许我在这里贩卖焦虑。 一、系统架构 作为技术这条路线,最终都会偏架构方向。即使做技术经理或总监。都必须对系统架构要有一定的知识储备,以备对团队的架构搭建与变更做出准确的判断。 这里并不是说我们去设计一些千万级别以上 PV 的系统架构。做为普通的开发者,要接触上亿的系统平台相对来说机会并不是很多。即使接触了,也仅仅只是这个平台里面的一个小螺丝。要能主导这个架构的设计,还稍显稚嫩。我再次说明一下,这里仅仅只对普通的开发者。不指那些尖端的高技术人才。 在我的理念当中,千万级别及以下 PV 的构架,通常用不到微服务。所以,不要用微服务来坑自己。加重架构的复杂度。

angular和vue的双向绑定原理

时光总嘲笑我的痴心妄想 提交于 2019-12-23 22:14:42
脏值检查: angular.js 是通过脏值检测的方式比对数据是否有变更,来决定是否更新视图,最简单的方式就是通过 setInterval() 定时轮询检测数据变动,当然Google不会这么low,angular只有在指定的事件触发时进入脏值检测,大致如下: DOM事件,譬如用户输入文本,点击按钮等。( ng-click ) XHR响应事件 ( $http ) 浏览器Location变更事件 ( $location ) Timer事件( $timeout , $interval ) 执行 $digest() 或 $apply() 数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的 setter , getter ,在数据变动时发布消息给订阅者,触发相应的监听回调。 来源: https://www.cnblogs.com/aisiqi-love/p/10488990.html

https是如何防劫持的

时光总嘲笑我的痴心妄想 提交于 2019-12-06 16:46:44
在 HTTP 里,一切都是明文传输的,流量在途中可随心所欲的被控制。而在线使用的 WebApp,流量里既有通信数据,又有程序的界面和代码,劫持简直轻而易举。 HTTPS 虽然不是绝对安全,但运营商要想劫持也不是这么简单的事情。 下面我们来聊一聊 HTTPS 如何做到防劫持。 SSL握手 先来看看 HTTPS 建立连接的过程,相比 HTTP 的三次握手, HTTPS 在三次握手之后多了 SSL 握手。如下图: SSL握手 整个流程大概如下: 1.浏览器将自己支持的一套加密规则发送给网站。 2.网站部署了一组SSL秘钥,分私钥和秘钥。 3.网站从浏览器的加密规则中选出一组加密算法与HASH算法,并将自己的身份信息(公钥)以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。 4.获得网站证书之后浏览器要做以下工作: a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。 b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。 c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密。这个加密过程是非对称加密,即公钥加密,私钥解密。私钥只在网站服务器上存储

用js屏蔽被http劫持的浮动广告实现方法

本小妞迷上赌 提交于 2019-12-05 04:11:29
最近发现网站经常在右下角弹出一个浮动广告,开始的时候以为只是浏览器的广告。 后来越来越多同事反映在家里不同浏览器也会出现广告。然后深入检查了下,发现网站竟然被劫持了。 然后百度了一大堆资料,什么http劫持、dns劫持、运营商劫持之类的,确定真的是中招了。看图: 真是偷梁换柱啊,被插入广告代码了。真是无良奸商,什么都做得出。 然并卵,最重要的解决办法是啥?然后把问题扔给了运维的同事。 最终结果是解决不了。没错,就是这么的坑爹。除非采用https。网上那些什么打电话、发信投诉之类的貌似没啥用。可能是运维太烂了。反正结果就是没结果。 然后,没办法啦。只能我们大前端自己想办法屏蔽啦。然后开启了研究劫持代码之旅, ......过程省略了800字寻找过程。 最终发现了,被劫持的广告会定义一个js全局变量_pushshowjs_ ,里面保存了一些劫持广告的相关信息,然后创建一个id为_embed_v3_dc的div放广告。并且每次都是一样的,不会有变化。 根据劫持广告的投放原理,最终使用了js屏蔽被劫持广告的方法。 具体代码如下: ;(function($,window,undefined){ var needClear=false, timeout; if(window._pushshowjs_){ console.log("adHttp"); needClear=true; }

DNS 劫持及解决方案之 HTTPDNS

匿名 (未验证) 提交于 2019-12-03 00:25:02
DNS 即域名系统(Domain Name Server),其主要用于将域名解析为对应的 IP 地址。 那么为什么会有域名到 IP 地址的解析这一需要呢?就需要从人的角度和计算机的角度去分析了。 人的角度: 网络上的主机一般是通过 IP 地址唯一确定,但 IP 不便于人们记忆,如果每个人都需要通过 IP 来访问其他主机,那记忆量太大了,因此才借用域名来间接地标识一台主机。比如常见的域名有: www.baidu.com, 其 IP 地址为 202.108.22.5。 计算机的角度: 人是方便记忆了,但是计算机的网络通信层(IP 层)只认 IP 地址。人想要访问其他主机必须通过计算机实现,因此光有域名还无法达到目的,于是计算机需要多干一件事,那就是根据人提供的域名去获得相应的 IP。 DNS 的来源上面已经解释了,DNS 劫持是指在劫持的网络范围内(类似于白名单)拦截域名解析的请求,分析请求的域名,把审查范围以外(类似于黑名单)的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。TCP 管发管到,UDP 管发不管到。因此,在安全性方面来说,TCP/IP更具有优越性,DNS 的域名解析基于 UDP 协议实现,极易发生 DNS 劫持。 传统 DNS 解析域名的最大弊端就是易被劫持,直接降低互联网用户的使用体验。比如你想访问 www

运营商劫持(DNS/HTTP302)

匿名 (未验证) 提交于 2019-12-03 00:22:01
本人以网络技术出身,近两年接触CDN网络,处理了一些CDN方面的网络问题,大多数以运营商丢包,延迟抖动为主,也处理一些硬件故障,比如机械硬盘的读写io测试,内存条兼容性测试,服务器IPMI规划等。这篇文章打算把自己对运营商对资源请求的劫持写下来,这个其实不是很罕见的事例,也不是网上找不到解决办法,也不是无法理解的尖钻技术,只是罗列一下自己的所知。 CDN网络访问拓扑 既然提到了CDN网络,那就顺带提一句吧。 废话不多说,先上图。   这回可以开始废话了吧?:大体的工作逻辑有用户的访问、localdns的解析、CDN资源调度、资源应答。 如果按照这种方式去运营CDN 架构 ,估计CDN行业早就倒闭了,先不说资源调度的好坏,如果有恶意的攻击流量,整个CDN系统就直接可以GG思密达了。 运营商劫持概述 劫持的目的 其实目的很简单,关于运营商劫持,一般运营商也不是无故做劫持,毕竟他们维护服务器,维护相应设备(比如分光器、分流器)也需要成本,运营商主要劫持出省流量,对于“小”运营商来说他们有省内流量考核,跨省访问会增加成本输出,集团控制出省流量,所以劫持往往发生在省间传输上。其次所有运营商都可能会做劫持,目的是减少省骨干网络链路的负载压力,尽可能的减少中继链路、远距离骨干链路,负载能力弱的链路上的流量,则会出现劫持的现象。 劫持的方法 运营商/或者小区宽带会有分光器设备