ASP.NET MVC 防止前端点击劫持

前端点击劫持的原理:通过向我们的页面中添加Iframe,并将Iframe设置成透明,在页面相应的地方设置一些操作引导,让用户在不知不觉中发送一些请求。

解决前端点击劫持的手段就是在服务器端的响应报文中增加X-Frame-Options配置。X-Frame-Options值有3种:

1、DENY:无论如何不在框架中显示。

2、SAMEORIGIN: 仅在同源域名下的框架中显示。

3、ALLOW-FROM uri:仅在指定域名下的框架中显示。

配置X-Frame-Options的手段也有多种:

1、在web.Config中添加配置

  <system.webServer>  ...
    <httpProtocol>
      <customHeaders>
        <add name="X-Frame-Options" value="SAMEORIGIN"/>
      </customHeaders>
    </httpProtocol>  ...
  </system.webServer>

2、可以添加一个全局过滤器来配置

public class XframeOptions : ActionFilterAttribute
{
    public override void OnResultExecuting(System.Web.Mvc.ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.AddHeader("X-Frame-Options", "DENY");
    }
}

3、若是需要灵活配置,可以考虑在controller中添加配置

        public ActionResult Index()
        {
            if (Response.Headers["X-Frame-Options"] == null)
            {
                Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
            }
            return View();
        }

原文地址:https://www.cnblogs.com/vichin/p/12394031.html

时间: 2024-10-07 16:48:39

ASP.NET MVC 防止前端点击劫持的相关文章

前端点击劫持

点击劫持 用户亲手操作---盗取用户资金(转账,消费) 用户不知情---获取用户敏感信息 ....if 利用 iframe 内嵌页面,并将原页面透明度设置为零,这样实现点击劫持 点击劫持防御 JavaScript 禁止内嵌 在内嵌页面中top和window不等 if (top.loaction != window.location) { top.location = window.location; } 但这种方式有时并不完全有效,因为攻击者是可以禁止 JavaScript 脚本的 <ifram

前端点击删除按钮删除table表格的数据

1 table.on('tool(hostTable)', function (obj) { 2 var data = obj.data;//须写 3 if (obj.event === 'del') { 4 var parents = $(this).parents('.elementClass'); 5 operateId = $(parents).attr('id'); 6 layer.confirm('确认删除么', function (index) { 7 1.找到删除按钮所在的父元素

ASP.NET MVC+Ajax前后端交互

在Web系统中,Ajax技术已经成为提高用户体验的必备技术.开发Ajax程序,涉及两方面的内容:一是客户端技术,二是服务器端技术. (1)客户端技术 核心工作是通过JavaScript向服务器发送数据和接收数据.初次之外还涉及两个工作,一是数据的展示,因此涉及Html DOM.CSS等相关技术:二是数据处理,因此涉及JSON.XML等数据格式处理技术.在实际开发过程中,可以借助一些客户端框架,来提高工作效率. (2)服务器端技术 核心工作是完成在服务器端接收和发送数据. 10.1 使用动作方法处

前端点击按钮复制内容

一.VUE 效果: 代码: 1 <template> 2 <div> 3 <el-row style="height:40px" type="flex"> 4 <el-col :span="6"> 5 <p>{{res}}</p></el-col> 6 <el-col :span="2"> 7 <el-button type=

添加asp.net mvc到现有的asp.net web form 应用程序

前言 asp.net mvc的前一版本为asp.net web Form(Asp.net mvc之前称为asp.net),其第一个版本与2002年年初发布.asp.net web form 属于.net框架的一部分.在接下来的十余年,asp.net web form框架稳步发展,不去越来越多的网站均采用asp.net 框架.几年后,新的web开发框架asp.net mvc 发布.如果想将asp.net mvc添加到现有的asp.net web form 系统中怎么办呢? 正文 如果想避免风险,想

7 天玩转 ASP.NET MVC — 第 6 天

目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 欢迎来到第六天的 MVC 系列学习中.希望你在阅读此篇文章的时候,已经学习了前五天的内容,这也是第六天学习的前提条件. 1. Lab 27 — 添加批量上传选项 在这个实验中,我们将会创建一个选项,用于从 CSV 文件中上传多个 Employees. 我们将会做两件事. 1. 学会如何运用文件上传控件. 异步控制器. 第一步:创建 FileUploadViewModel 在 ViewModels

ASP.NET MVC框架下添加菜单栏及分页项目

原创声明:本文为作者原创,转载请注明出处:http://www.cnblogs.com/DrizzleWorm/p/7274866.html ,谢谢! 我是做前端开发的,之前用C#的三层架构(UI.BLL.DAL)做过一个网站,这是我第一次接触ASP.NET MVC框架,首先给大家分享别人整理的ASP.NET MVC框架的一组教程:http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html内容很齐全,我是在先看了其他

ASP.NET MVC 4 (八) URL链接和Ajax帮助函数

使用帮助函数创建链接 MVC提供一些帮助函数创建链接,这些函数根据路径映射表自动调整生成的URL: 说明 示例 输出结果 应用程序相对URL Url.Content("~/Content/Site.css")  /Content/Site.css 到控制器action的链接 Html.ActionLink("My Link", "Index", "Home") <a href="/">My Li

ASP.NET MVC 4 (一)路径映射

正如ASP.NET MVC名字所揭示的一样,是以模型-视图-控制设计模式构建在ASP.NET基础之上的WEB应用程序,我们需要创建相应的程序类来协调处理,完成从客户端请求到结果相应的整个过程: VS2012中一个典型的MVC工程结构是这样的: Controllers文件夹下存放控制类,Models文件下是业务数据模型类,Views文件下则是类似于aspx的视图文件.在传统ASP.NET form的应用程序中,客户端的请求最后都映射到磁盘上对应路径的一个aspx的页面文件,而MVC程序中所有的网络