什么是X-Frame-Options

563 阅读1分钟

X-Frame-Options是什么? X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内。

例如:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM http://www.baidu.com/

第一个例子告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。

第二个例子告诉浏览器只有当架设iFrame的网站与发出X-Frame-Options的网站相同,才能显示发出X-Frame-Options网页的内容。

第三个例子告诉浏览器这个网页只能放在www.baidu.com 网页架设的iFrame内。

服务端配置X-Frame-Options 如下:

const http = require('node:http')

const server = http.createServer((req, res) => {
    if (req.url === "/showReq") {
        res.writeHead(200, {
            "Content-Type": "text/html",
            "X-Frame-Options": "ALLOW-FROM http://localhost:5173/", //设置该网页是否可放到iframe中
        });
        res.write("this is node");
        res.end();
    }
    if (req.url === "/sendData") {
        // post方式
        // 进行客户端发送数据的监听
        // 是对客户端对象进行监听,而不是服务器
        // 开始发送-发送结束的过程
        req.on("data", (chunk) => {
            str += chunk;
        });

        //  进行客户端发送数据结束,服务器开始处理的监听
        //倘若有响应,说明数据发送结束,我们已经拿到所有数据
        req.on("end", () => {
            res.end('接收成功');
        });
    }
});

server.listen(5666, () => {
    console.log("server start on port 5666 ...");
});