tk域名免费注册网站,浙江网站建设价位,网页设计与制作教程txt,织梦网站后台使用说明书Clickjacking点击劫持 1、clickjacking攻击2、clickjacking攻击场景 1、clickjacking攻击
clickjacking攻击又称为点击劫持攻击#xff0c;是一种在网页中将恶意代码等隐藏在看似无害的内容#xff08;如按钮#xff09;之下#xff0c;并诱使用户点击的手段。
2、clickj… Clickjacking点击劫持 1、clickjacking攻击2、clickjacking攻击场景 1、clickjacking攻击
clickjacking攻击又称为点击劫持攻击是一种在网页中将恶意代码等隐藏在看似无害的内容如按钮之下并诱使用户点击的手段。
2、clickjacking攻击场景
用户进入到一个网页中里面包含了一个按钮查看照片但是这个按钮上面加载了一个透明的iframe标签这个iframe标签加载了另外一个网页并且他将这个网页的某个按钮和网页中的按钮查看照片重合所以你在点击按钮查看照片的时候实际上点的是通过iframe加载的另外一个网页的按钮比如我现在有一个csdn的用户账号现在想要用户点击关注。那么我们就可以准备以下页面
!DOCTYPE html
html langen
headmeta charsetUTF-8titleClickjacking/titlestyleiframe {width: 100%;height: 100%;display: block;position: absolute; /*指定iframe和button为绝对定位*/z-index: 20; /*指定在垂直方向上的高低*/opacity: 0.01;/*指定透明度*/!--注意iframe的透明度不能设置为0如果设置为0的话就不能接受任何的点击事件了--}button {position: absolute;left: 40px;top: 65px;z-index: 10;}/style
/head
body
h2哇塞这张照片里怎么会有我快来看看有没有你吧/h2
button查看照片/button
iframe srchttps://blog.csdn.net/zjy123078_zjy/ frameborder0/iframe
/body
/html
clickjacking防御我们可以设置我们的网页不允许使用iframe被加载到其他网页中就可以避免这种情况了我们可以通过在响应头中设置X-Frame-Options来设置这种操作X-Frame-Options可以设置以下三个值
DEBY:不允许任何网页使用iframe加载我这个页面。SAMEORIGIN:只允许在相同域名也就是自己的网站下使用iframe加载这个页面。ALLOWED-FROM origin: 允许任何网页通过iframe加载我这个网页。 在Django中使用中间件django.middleware.clickjacking.XFrameOptionsMiddleware可以帮我们堵上这个漏洞这个中间件设置了一个X-Frame-Option为DENY,也就是不允许任何网页使用iframe加载这个网页这样就可以避免其他的别有用心的网页去通过iframe加载了。 我们可以查看一下网页源代码如下
class XFrameOptionsMiddleware(MiddlewareMixin):Set the X-Frame-Options HTTP header in HTTP responses.Do not set the header if its already set or if the response containsa xframe_options_exempt value set to True.By default, set the X-Frame-Options header to SAMEORIGIN, meaning theresponse can only be loaded on a frame within the same site. To prevent theresponse from being loaded in a frame in any site, set X_FRAME_OPTIONS inyour projects Django settings to DENY.def process_response(self, request, response):# Dont set it if its already in the responseif response.get(X-Frame-Options) is not None:return response# Dont set it if they used xframe_options_exemptif getattr(response, xframe_options_exempt, False):return responseresponse[X-Frame-Options] self.get_xframe_options_value(request,response)return responsedef get_xframe_options_value(self, request, response):Get the value to set for the X_FRAME_OPTIONS header. Use the value fromthe X_FRAME_OPTIONS setting, or DENY if not set.This method can be overridden if needed, allowing it to vary based onthe request or response.return getattr(settings, X_FRAME_OPTIONS, DENY).upper()
所以在我们使用django创建项目的时候默认的情况下Django就会默认的帮我们定义一个处理“点击劫持攻击”的中间件默认情况下就是开启的