我有一个问题,如果我使用nodejs作为后端,我将如何保护我的前端。例如,我创建了完整的网站,将react作为前端,后端使用nodejs,并使用Axios从后端获取和发布数据到前端,等等。
我现在的问题是,如果我在后台使用安全措施,它是否也会保护我的前端?
对于exmaple,如果我在nodejs中使用helmet
,我在那里为响应头添加的保护也将应用于我的主网站,即反应前端?
这是我的意思的代码。
var express = require('express');
var helmet = require('helmet');
var app = express();
app.use(helmet());
app.use(
helmet({
frameguard: {
action: "deny",
},
})
);
app.use(helmet.noSniff());
app.use(helmet.xssFilter());
我的后端nodejs服务器中的上述代码是否足以保护我的网站,还是需要在前端设置响应头和安全措施,因为我将使用后端nodejs服务器作为API与我的网站交互。
发布于 2022-04-07 19:04:16
博士:为了得到头盔的保护,你需要在任何为你的页面服务的页面上设置头盔的标题。如果你的网页是由你的节点后端提供的,那么你就在那里做。
头盔维修工在这里。
有一堆HTTP响应头,它们具有不同的效果。例如,Content-Type
头告诉浏览器如何解释数据。如果Content-Type
是text/html
,浏览器将将数据解释为text/html
。如果是image/png
,他们会将其解释为PNG文件。
头盔设置了各种具有不同效果的HTTP响应头。
例如,头盔设置了Content-Security-Policy
头,它保护用户免受各种攻击。想象一下下面的HTML:
<script>alert("Hello world!")</script>
如果没有Content-Security-Policy
响应头,JavaScript将运行,用户将看到警报。但是,如果Content-Security-Policy
设置为类似于default-src 'self'; script-src 'none'
的代码,浏览器将根本不会运行该代码。
如果后端服务器没有为HTML提供服务,那么这些响应头就不会被应用,您也得不到保护。如果后端服务器正在为HTML提供服务,那么您将!通常,您希望将这些响应头放在您可以使用的任何地方(尽管有许多例外)。
另外,顺便提一句:您在上面的代码片段中多次使用头盔。你可以把它缩短到:
app.use(
helmet({
frameguard: {
action: "deny",
},
})
);
https://stackoverflow.com/questions/71787304
复制相似问题