複数のデスクトップ/モバイル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ヘッダーを設定するにはどうすればよいですか-
helmet をインポートし、 frameguard を使用して、オリジンをホワイトリストに登録する必要があります。このトピックの詳細: MDN X-FRAME-OPTIONSベストプラクティスセキュリティ
必要なのは ヘルメット
npm install helmet --save
const express = require('express')
const helmet = require('helmet')
const app = express()
app.use(helmet.frameguard())