Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing X-Frame-Options being added automatically only in Login page

Tags:

I am developing an ASP.NET MVC application which needs to be loaded inside an iframe in another website. But the login page just won't appear inside the iframe because an Header is being sent in the response X-Frame-Options which is set to SAMEORIGIN. Browser is not displaying the page in iframe because of this. I already Googled and tried multiple things but nothing worked.

I am using ASP.NET forms authentication. May be in this case IIS adds this header in login page for added security. But I need to get rid of this in my use case.

I tried adding a custom header

<httpProtocol>   <customHeaders>     <add name="X-Frame-Options" value="ALLOW" />   </customHeaders> </httpProtocol> 

But the SAMEORGIN is still being added in the header with comma.

I also tried adding Header value from C# using Response.Headers["X-Frame-Options"] = "ALLOW". It cause two headers with the same name.

I also tried this in web.config

<customHeaders>     <remove name="X-Frame-Options" /> </customHeaders> 

It also didn't worked.

like image 570
shashwat Avatar asked May 21 '15 10:05

shashwat


People also ask

How do I get rid of X-Frame-options?

You can remove the HTTP header X-Frame-Options: SAMEORIGIN from WordPress by removing the send_frame_options_header function from the admin_init and login_init hooks. For example, you can add the following to your theme's functions.

Does Chrome support X-Frame-options allow From?

Chrome does not support the ALLOW-FROM directive in X-Frame-Options. So if we are going to do anything involving other domains, we need something similar. We can stitch together a patchwork configuration involving both headers, which does something more than just allow same-origin framing.

What is X Frame bypass?

X-Frame-Bypass is a Web Component, specifically a Customized Built-in Element, which extends an IFrame to bypass the X-Frame-Options: deny/sameorigin response header. Normally such headers prevent embedding a web page in an <iframe> element, but X-Frame-Bypass is using a CORS proxy to allow this.

Why would you use X-Frame-options to prevent your website from supporting an iframe?

X-Frame-Options prevents webpages from being loaded in iframes, which prevents it from being overlaid over another website. The victim's browser actually applies the security control, this is because all browsers respect the X-Frame-Options header and will refuse to load any webpages with the header set in a frame.


1 Answers

MVC 5 automatically adds an X-Frame-Options Header, so go to your Global.asax file and add this to the Application_Start() method:

System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true; 

Please note that especially for a login page it is bad practice to remove this header, because it opens up your site for login credentials phishing attacks. So if this site of yours is publicly accessable I strongly recommend to keep this header.

like image 195
Florian Haider Avatar answered Sep 16 '22 14:09

Florian Haider