【问题标题】:Secure my ExpressJS server Routes, they will accessed through cURLs保护我的 ExpressJS 服务器路由,它们将通过 cURL 访问
【发布时间】:2020-03-02 06:14:00
【问题描述】:

我需要一些关于我可以使用的最佳方法的建议,以便我的服务器上的路由只能由某些用户访问。

我的服务器有一些简单的路由"/example",我正在使用 Express JS 编写这些路由。将访问这些路线的人很少,他们大多会使用 curlcurl 123.45.678.901/example 从终端进行操作,但我想让它安全,以便只有特定的一组人可以访问该路线。

我该怎么办?我是新手,所以我正在考虑向 curl 添加一个自定义标头,但我不知道如何检查该自定义标头的路由,然后我认为这可能太简单了,所以我想知道是否有一种更好的方法可以为用户提供“密码”。感谢您的建议!

【问题讨论】:

  • 是否可以在查询参数中发送密码/密钥?例如:localhost/example?key=VERY_SECRET?
  • 老实说,密码将是要走的路。您可以对照数据库或类似的东西进行检查。如果您决定这样做,请告诉我,我会将其作为答案提交
  • 您需要一个凭证才能访问该路由。凭证的形式可以是自定义标头中的令牌或密码、查询参数或 cookie 中的令牌。最好不要将安全凭证放在查询参数中,显然,您应该在传输过程中使用 https 来保护凭证。如果仅通过 CURL 访问路由,则包含凭据的自定义标头可能是最直接的方法。
  • 在 express 内部,将所有需要身份验证的路由放在特定路由上,并在将控制权传递给路由之前使用中间件验证凭据。
  • 嗨@Dijkstra,我希望阻止创建数据库,因为这会增加太多开销。我宁愿让它们包含一些独特的标题或类似的东西

标签: node.js express security curl request-headers


【解决方案1】:

您需要凭据才能访问受保护的路由。凭证的形式可以是自定义标头中的令牌或密码、查询参数或 cookie 中的令牌。

最好不要将安全凭证放在查询参数中,显然,您应该使用https 在传输过程中保护凭证。

如果仅通过 CURL 访问路由,则包含凭据的自定义标头可能是最直接的方法。

对于您的服务器上的 express,将所有需要身份验证的路由放在特定的路由器上,并在将控制权传递给路由之前使用验证凭据的中间件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多