在SSL下显示来自同一域的IFrame

Mat*_*ram 3 .net c# ssl iframe

我试图将我们页面的登录部分包装在一个用SSL创建的iframe中,并在我们公司网站的几个页面上显示(有点像登录小部件).

但是,我一直在页面上出现错误,呈现iframe,表明:

拒绝在框架中显示,因为它将'X-Frame-Options'设置为'SAMEORIGIN'

我要在其上显示的登录窗口小部件和网页是在同一个域下托管的,这是一个问题吗?

我四处搜索,似乎没有什么能够避免这个问题.有没有人有这个问题的解决方案?

<iframe sandbox="allow-same-origin allow-forms allow-scripts" src="https://<sitename>/loginiframewidget.aspx"></iframe>
Run Code Online (Sandbox Code Playgroud)

目前这些是我在web.config中的内容

<httpProtocol>
  <customHeaders>
    <add name="access-control-allow-headers" value="content-type" />
    <!--<add name="Access-Control-Allow-Origin" value="*" />-->
    <add name="Content-Security-Policy" value="frame-ancestors 'self' mysite.com.au"/>
    <add name="X-Frame-Options" value="ALLOWALL"/>
  </customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)

页面上Chrome Dev Tools中显示的标题是:

在此输入图像描述

Ste*_*ill 5

无论如何,此实现存在安全问题.

首先,您无法确定未加密页面的内容在传输时是否未被更改,并且已将iframe的src指向其他位置.

第二个是,即使用户使用SSL登录,他们在cookie中的会话ID也会以明文形式发送,并且很容易被欺骗.

您会考虑在SSL中运行整个站点吗?这些天服务器比你想象的更好地处理这个问题,你不再需要iframe了.