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

Ada*_*dam 1 security http node.js

目前我的HTTP Server具有以下配置:

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
Run Code Online (Sandbox Code Playgroud)

尊重Access-Control条目.

这些是否表明发送和接收服务器的内容?

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

谢谢

bra*_*ipt 5

Access-Control-Allow-Origin: *

您可以轻松地限制此条目以限制对您的站点的AJAX请求(阻止CORS).这很容易做到(取决于你想要建立的东西)通常是一个好主意.

Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS

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

Access-Control-Allow-Credentials: true

如果您没有处理身份验证(或保护任何内容),那么这是无关紧要的.如果您要保护某些内容,您可能希望实现类似的功能,并禁止使用凭据.

Access-Control-Max-Age: 86400

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

所有这些都表明,虽然在实现Node时存在大量其他安全问题,但如果您严格不需要额外的头处理,则删除它们会带来好处.