在一个混合asp.net mvc/webforms应用程序中,为什么我的重定向有一个MIME'text/plai



出于这样或那样的原因,我有一个执行注销的站点,然后用户被重定向到独立的登录站点(登录托管在Azure中,主站点托管在其他地方)。在MVC中,注销操作使用以下(vb)代码:

Function LogOut() As ActionResult
    Session.Abandon()
    FormsAuthentication.SignOut()
    Return Redirect("~/")
End Function

它做了它应该做的事情,但在上次更新(尝试使用html5boilerplate中的一些位-只是一些css和一些安全头)之后,仅在Chrome中,在用户被送回着陆点之前,会有一个简短的重定向代码:

<html><head><title></title><script language="javascript">window.location = 'http://<site here>';</script></head><body></body></html>

在所有其他浏览器(IE、FF、Safari)中,用户看不到任何异常,但Chrome用户可以看到原始的html代码。查看Chrome的日志(保存在操作过程中),我发现有问题的页面使用的是text/plain而不是text/html,对此原因我相当困惑。

事实证明,我无意中将X-Content-Type-Options设置为nosniff,而在Chrome中——如果没有设置MIME,那么它想通过查看内容来"嗅探"。通过明确禁止它,浏览器别无选择,只能使用text/plain。

TL;DR-确保未设置X-Content-Type-Options

相关内容

最新更新