Node.js HTTP 服务器 - 如何保护

标签 node.js security http

目前我的 HTTP 服务器具有以下配置:

curl -i http://localhost:3000

    HTTP/1.1 200 OK
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
    Access-Control-Allow-Credentials: true
    Access-Control-Max-Age: 86400
    Access-Control-Allow-Headers: X-Requested-With, Access-Control-Allow-Origin, X-HTTP-Method-Override, Content-Type, Authorization, Accept
    Date: Tue, 10 Dec 2013 22:31:40 GMT
    Connection: keep-alive
    Transfer-Encoding: chunked

关于访问控制条目。

这些是否表明服务器发送和接收什么?

我最好尽量减少这个列表吗?这是否意味着服务器可能更安全,因为访问它的方法更少?

谢谢

最佳答案

访问控制允许来源:*

您可以轻松地限制此条目以限制对您网站的 AJAX 请求(阻止 CORS)。这很容易做到(取决于您要构建的内容)通常是个好主意。

访问控制允许方法:POST、GET、PUT、DELETE、OPTIONS

同样,根据您正在构建的内容,这可能仅限于您打算使用的 HTTP 方法。一个基本的网站可能只需要 GET,一个包含表单上传的内容驱动的网站将需要 POST,或者一个复杂的 API 或套接字驱动的网站可能/将需要其他。

Access-Control-Allow-Credentials: true

如果您不处理身份验证(或保护任何东西),那么这是无关紧要的。如果你正在保护某些东西,你可能想要实现类似 的东西到位,并禁止凭据。

Access-Control-Max-Age:86400

这就是网站响应可以缓存的时间。这是 24 小时,但在高度安全的站点上,您可能希望将其限制为 1 小时或 30 分钟。

综上所述,同时还有大量其他 security concerns when implementing Node ,如果您严格不需要额外的 header 处理,那么删除它们会有好处。

关于Node.js HTTP 服务器 - 如何保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506866/

相关文章:

mysql - 使用 sql SELECT nodejs

java - 无法找到 LoginModule 类 : com. sun.security.auth.module.UnixLoginModule

c# - 反汇编 C#

http - net/http : request canceled (Client. 等待 header 时超时)为什么/该怎么办?

http - 被阻止的滥用用户的正确 HTTP 状态代码是什么?

javascript - github 上的 Angular 全栈示例

node.js - 无法将数据添加到 MongoDB Atlas "not authorized to execute command { insert: ... }"

java - 如何使用服务器错误响应代码 500 发送 JSON 数据

javascript - socket.io 不记录控制台消息

google-chrome - Chrome和IE中的混合内容