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();
        }

 

posted @ 2020-03-02 09:59  水墨晨诗  阅读(371)  评论(0编辑  收藏  举报