【发布时间】: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