web-dev-qa-db-ja.com

express.js node.jsでX-Frame-Optionsを設定する方法

複数のデスクトップ/モバイルWebクライアントのiframe内に配信したい静的アセットがいくつかあります。

ここで、特定のオリジンのセットをホワイトリストに登録して、X-Frame-Optionsヘッダーの設定を許可し、リソースを異なるデスクトップ/モバイルWebクライアント内にiframeとして埋め込むことができるようにします。他のすべてのオリジンについては、このリソースへのアクセスを拒否します。

少し掘り下げることから始めました-

const app = express();

var allowCrossDomain = function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, Authorization');
    if (req.method === "OPTIONS") res.send(200);
    else next();
}
app.use(allowCrossDomain);

ここで、ホワイトリストに登録されたOriginの値でX-Frame-Optionsヘッダーを設定するにはどうすればよいですか-

7
Harshit Laddha

helmet をインポートし、 frameguard を使用して、オリジンをホワイトリストに登録する必要があります。このトピックの詳細: MDN X-FRAME-OPTIONSベストプラクティスセキュリティ

8
zivce

必要なのは ヘルメット

npm install helmet --save 

const express = require('express')
const helmet = require('helmet')

const app = express()

app.use(helmet.frameguard())