禁用 Chrome 严格的 MIME 类型检查

     2023-02-19     170

关键词:

【中文标题】禁用 Chrome 严格的 MIME 类型检查【英文标题】:Disable Chrome strict MIME type checking 【发布时间】:2017-01-06 19:22:39 【问题描述】:

有什么方法可以在 Chrome 中禁用 strict MIME type checking

实际上我正在跨域发出 JSONP 请求。它在 Firefox 上运行良好,但是在使用 chrome 时,它​​在控制台中出现了一些错误。

拒绝执行来自 'https://example.com' 的脚本,因为它的 MIME 类型 ('text/plain') 不可执行,并且启用了严格的 MIME 类型检查。

它在 Mozilla 中完美运行.. 问题仅在 chrome 中出现

这是请求的响应标头..

Cache-Control:no-cache, no-store
Connection:Keep-Alive
Content-Length:29303
Content-Type:text/plain;charset=ISO-8859-1
Date: xxxx
Expires:-1
Keep-Alive:timeout=5
max-age:Thu, 01 Jan 1970 00:00:00 GMT
pragma:no-cache
Set-Cookie:xxxx
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options:nosniff
X-Frame-Options:SAMEORIGIN

解决我的想法: 外部设置 content-type 为application/javascript

【问题讨论】:

你见过类似的问题吗? ***.com/questions/17341122/… @Rory McCrossan 是的......这个问题是指从 github 获取文件......它们是将文件导出为 zip 的替代解决方法...... 您以纯文本形式发送的内容是什么? 它收到一个json..响应是这样的..angular.callbacks._3(json_data) 我错过了你正在发送 JSONP;您需要使用正确的 MIME 类型:application/javascript 【参考方案1】:

node.js 的获取处理程序中将路由名称更改为单个路由 我的app.get('/all-produce/search',(req,res)) 不工作 但我将其更改为 app.get('/getProduce',(req,res)) 和与 html 链接的 CSS 文件。

【讨论】:

【参考方案2】:

如果您使用的是 node.js (with express)

如果你想在 node.js 中提供静态文件,你需要使用一个函数。将以下代码添加到您的 js 文件中:

app.use(express.static("public"));

应用在哪里:

const express = require("express");
const app = express();

然后在您的项目文件夹中创建一个名为 public 的文件夹。 (您可以将其称为其他名称,这只是一种好习惯,但请记住也要从函数中更改它。)

然后在此文件中创建另一个名为 css 的文件夹(和/或 css 下的图像文件,如果您也想提供静态图像。)然后将您的 css 文件添加到此文件夹。

添加它们后,相应地更改样式表。例如,如果是:

href="cssFileName.css"

src="imgName.png"

制作它们:

href="css/cssFileName.css"
src="css/images/imgName.png"

应该可以的??

【讨论】:

【参考方案3】:

对于 Windows 用户:

如果此问题发生在您的自托管服务器(例如: 您的自定义 CDN)上,并且浏览器 (Chrome) 在尝试加载您的 javascript 文件时显示类似... ('text/plain') is not executable ......

这是你需要做的:

    打开注册表编辑器 Win + R > regedit 前往HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.js 检查内容类型是否为application/javascript 如果不是,则将其更改为application/javascript,然后重试

【讨论】:

它不存在,我已经创建它并重新启动,但唉,同样的错误。编辑:我是为 pgadmin4 做的在常见问题解答中找到它pgadmin.org/faq 他们建议text/javascript【参考方案4】:

就我而言,我在nginx 上关闭了X-Content-Type-Options,然后工作正常。但请确保这会稍微降低您的安全级别。将是一个临时修复。

# Not work
add_header X-Content-Type-Options nosniff;
# OK (comment out)
#add_header X-Content-Type-Options nosniff;

对于 apache 也是如此。

<IfModule mod_headers.c>
  #Header set X-Content-Type-Options nosniff
</IfModule>

【讨论】:

这个解决方案对我来说很好 #Header set X-Content-Type-Options nosniff 当然,降低您网站的安全性,而不是解决实际问题!见:***.com/questions/18337630/…【参考方案5】:

文件伪装另一个扩展名时的另一种解决方案

我在var.js 文件中使用php 和这个.htaccess

<Files var.js>
    AddType application/x-httpd-php .js
</Files>

然后我在.js文件中编写php代码

<?php
// This is a `.js` file but works with php
echo "var js_variable = '$php_variable';";

当我在 Chrome 上收到 MIME 类型警告时,我通过在 .js(but php) 文件中添加 Content-Type 标题行来修复它。

<?php
header('Content-Type: application/javascript');        // <- Add this line
// This is a `.js` file but works with php
...

浏览器不会执行 .js 文件,因为 apache 将文件的 Content-Type 标头发送为 application/x-httpd-php 中定义的 .htaccess。这是安全原因。但是apache不会执行php,因为htaccess命令模拟,这是必要的。所以我们需要用php函数header()覆盖apache的Content-Type header。我猜想当 php 之前发送它而不是 apache 时,apache 会停止发送自己的 header。

【讨论】:

【参考方案6】:

也遇到过同样的问题,

如果无法解决问题可以在命令行运行以下命令chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security

注意:您必须导航到 chrome 的安装路径。 例如:cd C:\Program Files\Google\Chrome\Application

将打开一个开发者会话 chrome 浏览器,您现在可以在新的 chrome 浏览器上启动您的应用。 我希望这会有所帮助

【讨论】:

同意.. 但仅用于开发角度.. 为生产添加适当的 mime 类型。 自此日期起,此标志不再用于禁用 MIME 类型检查 也不适合我...【参考方案7】:

服务器应该以正确的 MIME 类型响应 JSONP application/javascript 并且你的请求应该告诉 jQuery 你正在加载 JSONP dataType: 'jsonp'

详情请见this answer! 您也可以have a look a this one,因为它解释了为什么使用text/plain 加载.js 文件不起作用。

【讨论】:

拒绝执行脚本,因为 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

...脚本,因为MIME类型(\\\'text/html\\\')不可执行,并且启用了严格的MIME类型检查【英文标题】:RefusedtoexecutescriptbecauseMIMEtype(\'text/html\')isnotexecutable,andstrictMIMEtypecheckingisenabled拒绝执行脚本,因为MIME类型(\'text/html\')不可执行,并且启... 查看详情

拒绝执行脚本,因为它的 MIME 类型 ('text/html') 不可执行并且启用了严格的 MIME 类型检查

...本,因为它的MIME类型(\\\'text/html\\\')不可执行并且启用了严格的MIME类型检查【英文标题】:RefusedtoexecutescriptbecauseitsMIMEtype(\'text/html\')isnotexecutableandstrictMIMEtypecheckingisenabled拒绝执行脚本,因为它的MIME类型(\'text/html\')不可执行并且... 查看详情

拒绝执行脚本,启用严格的 MIME 类型检查?

】拒绝执行脚本,启用严格的MIME类型检查?【英文标题】:Refusedtoexecutescript,strictMIMEtypecheckingisenabled?【发布时间】:2017-03-2705:30:19【问题描述】:为什么我在控制台中收到此错误?拒绝执行脚本\'https://www.googleapis.com/customsearch/v... 查看详情

拒绝执行脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

...,因为它的MIME类型(\\\'text/html\\\')不可执行,并且启用了严格的MIME类型检查【英文标题】:RefusedtoexecutescriptfrombecauseitsMIMEtype(\'text/html\')isnotexecutable,andstrictMIMEtypecheckingisenabled拒绝执行脚本,因为它的MIME类型(\'text/html\')不可执行... 查看详情

如何满足对 wasm 的严格 mime 类型检查?

】如何满足对wasm的严格mime类型检查?【英文标题】:Howtosatisfystrictmimetypecheckingforwasm?【发布时间】:2020-01-2900:54:23【问题描述】:我有一个使用emscripten编译的webassembly模块。现在我正在尝试使用expressjs在网页中提供它。我已经... 查看详情

加载模块脚本失败:服务器以非 JavaScript MIME 类型“”响应。执行严格的 MIME 类型检查

...块脚本失败:服务器以非JavaScriptMIME类型“”响应。执行严格的MIME类型检查【英文标题】:Failedtoloadmodulescript:Theserverrespondedwithanon-JavaScriptMIMEtypeof"".StrictMIMEtypecheckingisenforced【发布时间】:2021-06-0520:18:28【问题描述】:我... 查看详情

拒绝从 '*' 执行脚本,因为它的 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查

...为它的MIME类型(\\\'application/json\\\')不可执行,并且启用了严格的MIME类型检查【英文标题】:Refusedtoexecutescriptfrom\'*\'becauseitsMIMEtype(\'application/json\')isnotexecutable,andstrictMIMEtypecheckingisenabled拒绝从\'*\'执行脚本,因为它的 查看详情

收到错误:MIME 类型 ('text/html') 不是受支持的样式表 MIME 类型,并且使用 DJANGO PYTHON 启用了严格的 MIME 检查

...')不是受支持的样式表MIME类型,并且使用DJANGOPYTHON启用了严格的MIME检查【英文标题】:recievingerror:MIMEtype(\'text/html\')isnotasupportedstylesheetMIMEtype,andstrictMIMEcheckingisenabledwithDJANGOPYTHON收到错误:MIME类型(\'text/h 查看详情

拒绝从 URL 执行脚本,因为它的 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查

...为它的MIME类型(\\\'application/json\\\')不可执行,并且启用了严格的MIME类型检查【英文标题】:RefusedtoexecutescriptfromURLbecauseitsMIMEtype(\'application/json\')isnotexecutable,andstrictMIMEtypecheckingisenabled拒绝从URL执行脚本,因为它的MIME类型(\'a 查看详情

拒绝从 'URL' 执行脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

...,因为它的MIME类型(\\\'text/html\\\')不可执行,并且启用了严格的MIME类型检查【英文标题】:Refusedtoexecutescriptfrom\'URL\'becauseitsMIMEtype(\'text/html\')isnotexecutable,andstrictMIMEtypecheckingisenabled拒绝从\'URL\'执行脚本,因为它的MIME类型(\ 查看详情

Express 错误:根据 HTML 规范对模块脚本强制执行严格的 MIME 类型检查

】Express错误:根据HTML规范对模块脚本强制执行严格的MIME类型检查【英文标题】:Expresserror:StrictMIMEtypecheckingisenforcedformodulescriptsperHTMLspec【发布时间】:2021-12-0903:35:02【问题描述】:我正在尝试通过express构建一个简单的单页应... 查看详情

拒绝从 'file_name.php' 执行脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

...,因为它的MIME类型(\\\'text/html\\\')不可执行,并且启用了严格的MIME类型检查【英文标题】:Refusedtoexecutescriptfrom\'file_name.php\'becauseitsMIMEtype(\'text/html\')isnotexecutable,andstrictMIMEtypecheckingisenabled拒绝从\'fi 查看详情

“拒绝应用来自 link 的样式,因为它的 MIME 类型不受支持且已启用严格的 MIME checkinis。”在 Vue+Vuetify 应用中

...应用来自link的样式,因为它的MIME类型不受支持且已启用严格的MIMEcheckinis。”在Vue+Vuetify应用中【英文标题】:"RefusedtoapplystylefromlinkbecauseitsMIMEtypeisnotasupportedandstrictMIMEcheckinisenabled."inVue+VuetifyApp“拒绝应用来自link的样式... 查看详情

检查浏览器是不是支持特定的 MIME 类型?

】检查浏览器是不是支持特定的MIME类型?【英文标题】:CheckifabrowsersupportsaspecificMIMEtype?检查浏览器是否支持特定的MIME类型?【发布时间】:2011-01-1110:10:34【问题描述】:如何使用php检查浏览器是否支持特定的mime类型?【问题... 查看详情

PHP:如何正确检查文件的 MIME 类型?

】PHP:如何正确检查文件的MIME类型?【英文标题】:PHP:HowtoproperlycheckMIMEtypeofafile?【发布时间】:2020-05-1601:43:46【问题描述】:我有一个可以上传图片的输入,唯一允许的图片类型是:png,jpg,jpeg在将图像插入数据库之前,它会检... 查看详情

在 PHP 中检查“魔术字节”或 Mime 类型?

】在PHP中检查“魔术字节”或Mime类型?【英文标题】:Checking"MagicBytes"orMimeTypesinPHP?【发布时间】:2013-08-0119:01:56【问题描述】:所以,我目前使用了几种不同的方法来检查MIME类型。用户使用表单上传文件,我获取mime类... 查看详情

request-promise : 下载/检查文件的 MIME 类型?

】request-promise:下载/检查文件的MIME类型?【英文标题】:request-promise:downloading/checkingafile\'sMIMEtype?【发布时间】:2016-12-2310:40:47【问题描述】:使用标准请求模块,我们可以运行以下脚本来检查文件的MIME类型;varrequest=require(\'req... 查看详情

检查文件 mime 类型是不是与 php 中的扩展名匹配

】检查文件mime类型是不是与php中的扩展名匹配【英文标题】:checkifafilesmime-typematchesit\'sextensioninphp检查文件mime类型是否与php中的扩展名匹配【发布时间】:2011-11-1323:31:46【问题描述】:有什么方法可以检查文件的mime-type是否与... 查看详情