今天主要给大家聊聊网络挟制的那些事儿,网络挟制,搞网络安全的童鞋该当不陌生了,但前真个小伙伴就可要当心了哦!
大家常见的可能都是些专业级别的操作,如:运营商挟制,DNS挟制,HTTP挟制等,今天主要还是给大家讲一下前端挟制,点击挟制,很多童鞋对这个专业名词可能比较陌生,但实际中最常见.

我们先看一下观点吧,在百度上对付点击挟制有这么一段话来描述:”点击挟制被称为Clickjacking的安全威胁,原来要在OWASPNYCAppSec2008大会上公布,但包括Adobe在内的厂商要求暂时不要公开这个漏洞,直到他们开拓出安全补丁。
创造这个漏洞的是两个安全研究专家,Robert Hansen 与 Jeremiah Grossman,他们已经略透露了一点干系信息以显示该安全威胁的严重性。”
简而言之,点击挟制,只是一种从视觉上欺骗利用者的手段,大致分为两种办法.
办法一: 利用透明的iframe来覆盖网页,让用户操作
办法二: 利用图像来伪装
大略的示例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html,body,iframe{
display: block;
position:absolute;
width: 100%;
height: 100%;
margin: 0;
padding:0;
left:0;
right:0;
top:0;
bottom:0;
}
iframe{
opacity:20;
filter:alpha(opacity=20); / IE /
-moz-opacity:0.2; / Moz + FF /
opacity: 0.2; / 支持CSS3的浏览器(FF 1.5也支持)/
position:absolute;
z-index:2;
}
button{
position: absolute;
left:50%;
top:50%;
z-index: 1;
}
</style>
</head>
<body>
这是一个美女,大家先到先得!
<button>点击查看详情</button>
<iframe src="http://www.baidu.com" frameborder="0"></iframe>
</body>
</html>
原版效果如下图:
以下为特定场景中的iframe框架效果,当前也可以利用其它标签来实现功能,想一想如果我再把图中的透明度设置为0,很多造孽操作,是不是就很可能实现呢!?真是想一想都后怕.
总结: 当然以上内容实质上还只是一些大家没有太把稳到的UI层覆盖问题,只是实现的手段不一样而己,类似的东西还有以下操作:
Flash点击挟制,操作本机摄像头等
图片覆盖攻击(XSIO)
拖拽挟制,紧张是用于数据盗取
触屏挟制(TapJacking)
以上办法给上网用户带来了很多安全隐患,导致个人隐私透露,各种帐号丢失,乃至还可以导致转帐问题,当然这些问题,也有对应的办理方案
防御方案:
X-FRAME-OPTIONS是目前最可靠的方法。X-FRAME-OPTIONS是微软提出的一个http头,专门用来防御利用iframe嵌套的点击挟制×××。并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。
这个头有三个值:
DENY // 谢绝任何域加载
SAMEORIGIN / / 许可同源域下加载
ALLOW-FROM // 可以定义许可frame加载的页面地址
PHP代码:
header('X-Frame-Options:Deny');
header('X-Frame-Options:SAMEORIGIN);
配置 Apache
配置 Apache 在所有页面上发送 X-Frame-Options 相应头,须要把下面这行添加到 'site' 的配置中:
Header always append X-Frame-Options SAMEORIGIN
配置 nginx
配置 nginx 发送 X-Frame-Options 相应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:
add_header X-Frame-Options SAMEORIGIN;
配置 IIS
配置 IIS 发送 X-Frame-Options 相应头,添加下面的配置到 Web.config 文件中:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
</system.webServer>
以上为本期与大家分享的点击挟制内容,下期还会给大家分享更多《前端网络安全》干货,请关注我哦!