X-Permitted-Cross-Domain-Policies

原文链接

简介:Helmet的crossdomain中间件阻止了Adobe Flaseh和Adobe Acrobat加载您网站上的内容。

“攻击方式”

减少暴露的代码可以减少被攻击的可能。

Adobe Flash和Adobe Acrobat可以从您的域或是其他站点(换句话说,跨域)加载内容。在少数情况下,这可能会导致意外的数据泄露或额外的流量使用。

Header详解

X-Permitted-Cross-Domain-Policies告诉Flash和Acrobat可以使用那些跨域策略。如果不希望它们从您的域中加载数据,请将它的值设置为none。请看示例:

X-Permitted-Cross-Domain-Policies: none
1

如果Flash尝试从你的网站加载一些数据并查看,它会知道不应该从你的域加载数据。

该响应头还有其他值,需要您创建一个定义跨域策略的crossdomain.xml文件。您可以阅读下方的链接。

扩展阅读

代码

您可以将其以Helmet一部分的形式使用:

// Make sure you run "npm install helmet" to get the Helmet package.
const helmet = require('helmet')

app.use(helmet.permittedCrossDomainPolicies())
1
2
3
4

也可以单独使用:

// Make sure you run "npm install helmet-crossdomain" to get this package.
const permittedCrossDomainPolicies = require('helmet-crossdomain')

app.use(permittedCrossDomainPolicies())
1
2
3
4

该响应头的值默认为none。也可以设置为其他值:

app.use(permittedCrossDomainPolicies({ permittedPolicies: 'master-only' }))
app.use(permittedCrossDomainPolicies({ permittedPolicies: 'by-content-type' }))
app.use(permittedCrossDomainPolicies({ permittedPolicies: 'all' }))
1
2
3
上次更新: 1/19/2020, 3:30:05 PM