我有一个无服务器API,它与无服务器框架版本1.25一起工作
由于安全原因,我想添加响应头。请帮助我如何通过serverless.yml文件设置下面的标题。出于安全考虑,有必要添加此标题吗?
内容-安全-策略:包括默认-src“自我”
•严格的交通安全最大年龄=31536000;包括子域;预载
•X-Content-Type-Options:nosniff
•X-XSS-保护:1
•缓存控制:最大年龄=0;Expires=-1或Expires:1990年1月1日星期五格林威治标准时间00:00:00;没有缓存,必须重新验证
下面是我的无服务器应用程序无服务器。亚马尔
service: myService
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: eu-west-1
environment:
REGION: ${self:provider.region}
PROJECT_NAME: ${self:custom.projectName}
SERVERLESS_STAGE: ${self:provider.stage}
SERVERLESS_SERVICE: ${self:service}
IP_ADDRESS: http://example.com
functions:
getMyFunction:
handler: handler.getMyFunction
timeout: 30
events:
- http:
method: get
path: api/getMyFunction/v1
integration: lambda
cors: true
authorizer:
name: authorizerFunc
identitySource: method.request.header.Token
authorizationType: AWS_IAM
service: myService
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: eu-west-1
environment:
REGION: ${self:provider.region}
PROJECT_NAME: ${self:custom.projectName}
SERVERLESS_STAGE: ${self:provider.stage}
SERVERLESS_SERVICE: ${self:service}
IP_ADDRESS: http://example.com
functions:
getMyFunction:
handler: handler.getMyFunction
timeout: 30
events:
- http:
method: get
path: api/getMyFunction/v1
integration: lambda
cors: true
authorizer:
name: authorizerFunc
identitySource: method.request.header.Token
authorizationType: AWS_IAM
response:
headers:
Content-Security-Policy: "'Include default-src 'self''"
Strict-Transport-Security: "'max-age=31536000; includeSubDomains; preload'"
X-Content-Type-Options: "'nosniff'"
X-XSS-Protection: "'1'"
Cache-Control: "'max-age=0; Expires=-1 or Expires: Fri, 01 Jan 1990 00:00:00 GMT; no-cache, must-revalidate'"
由于您使用Lambda集成,因此必须将其放入serverless中。yml
。
service: myService
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: eu-west-1
environment:
REGION: ${self:provider.region}
PROJECT_NAME: ${self:custom.projectName}
SERVERLESS_STAGE: ${self:provider.stage}
SERVERLESS_SERVICE: ${self:service}
IP_ADDRESS: http://example.com
functions:
getMyFunction:
handler: handler.getMyFunction
timeout: 30
events:
- http:
method: get
path: api/getMyFunction/v1
integration: lambda
cors: true
authorizer:
name: authorizerFunc
identitySource: method.request.header.Token
authorizationType: AWS_IAM
response:
headers:
Content-Security-Policy: "'Include default-src 'self''"
Strict-Transport-Security: "'max-age=31536000; includeSubDomains; preload'"
X-Content-Type-Options: "'nosniff'"
X-XSS-Protection: "'1'"
Cache-Control: "'max-age=0; Expires=-1 or Expires: Fri, 01 Jan 1990 00:00:00 GMT; no-cache, must-revalidate'"
参考:https://serverless.com/framework/docs/providers/aws/events/apigateway#custom-response-headers
您可以使用Lambda代理集成。基于留档,您需要创建一个函数,当有人访问您的API终结点时,该函数将运行。
作为一个例子:
module.exports.hello = function (event, context, callback) {
console.log(event); // Contains incoming request data (e.g., query params, headers and more)
const response = {
statusCode: 200,
headers: {
"x-custom-header": "My Header Value"
},
body: JSON.stringify({ "message": "Hello World!" })
};
callback(null, response);
};
在你的无服务器系统中。yml
functions:
index:
handler: handler.hello
events:
- http: GET hello
问题内容: 这是我的代码: 但是,当我从浏览器向服务器发出请求时,出现此错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我犯了同样的错误。有没有一种方法可以只在route函数中设置响应头?这样的事情将是理想的: 但我还是找不到这样做。请帮忙。 编辑 如果我使用POST请求卷曲URL,如下所示: 我得到这个回应: 有任何想法吗? 问题答案: 你可以很容易地做到这一点: 查看和 但是有些
在我的java项目中,我想提供一个下载word文件的函数。当我输出默认文件名时,大写的英文字符将自动转换为小写。我怎样才能解决这个问题。 我该怎么修好它?
问题内容: 我需要将CORS设置为在express服务的脚本上启用。如何为公共/资产在这些返回的响应中设置标题? 问题答案: npm上至少有一个中间件用于处理Express中的CORS:cors。[请参阅@mscdex答案] 这是从ExpressJS DOC 设置自定义响应头的方法 将标题字段设置为值 或传递一个对象以一次设置多个字段。 别名为
有一个需要实现的REST APIendpoint用于获取一些信息并将后端请求发送到另一个服务器,来自后端服务器的响应必须设置为最终响应。我的问题是如何在javax.ws.rs.core.响应中设置响应体? 这里的消息是我需要设置的。但是我尝试了几种方法。没有一个奏效。
问题内容: 我从API的响应中收到X-Frame- Options标头,但据我所知,为了防止clickjacking攻击,我需要在UI代码中添加它。UI代码(用angularjs编写)部署在Tomcat(版本7.0.72)服务器中。我尝试在应用程序的web.xml中添加以下过滤器。 但是,我看不到标题被添加。有人可以帮我找出解决方案吗? 问题答案: 我找到了解决方案。X-Frame- Option
我有一个pythonwebsocket服务器和一个nodejs客户端,但我无法实现websocket的协议握手。 下面的最小WebSocket服务器使用(使用)。文件名为: 以下最小websocket客户端使用库。文件名为: 启动python ws-server: 从nodejs ws客户端连接: 客户端的输出是 服务器终端的输出为: 在我看来,python服务器需要设置一个名为的头,该头的值与它