仅对 restify 中定义的路由使用 csrf
Use csrf only for defined routes in restify
我有 restify 应用程序(简单 API)。
我们使用 csurf 库来防止 CSRF 请求。
但我不需要在多个路由上使用 CSRF 验证。
第一个想法,我认为 - 这创建了一个数组,其中包含我不需要的路由,使用 csrf 并验证当前路由。
var routesNoCSRF = ['/api/route1', '/api/route2'];
if (routesNoCSRF.indexOf(currentRoute) === -1) {
server.use(csrf({
cookie: true,
ignoreMethods: ['HEAD', 'OPTIONS']
}));
}
但是在这一步我没有访问 currentRoute
其次 - 这将一个 API 划分为 2 个不同的 API - 第一次使用 csrf 验证第二次 - 不是。在这种情况下 - 我们创建了 2 个不同的服务器,它们监听 2 个不同的端口。
但我会只使用一个应用程序来做到这一点。可能吗?
在 csurf github 页面上有一个忽略路由的完整示例。
我有 restify 应用程序(简单 API)。 我们使用 csurf 库来防止 CSRF 请求。
但我不需要在多个路由上使用 CSRF 验证。
第一个想法,我认为 - 这创建了一个数组,其中包含我不需要的路由,使用 csrf 并验证当前路由。
var routesNoCSRF = ['/api/route1', '/api/route2'];
if (routesNoCSRF.indexOf(currentRoute) === -1) {
server.use(csrf({
cookie: true,
ignoreMethods: ['HEAD', 'OPTIONS']
}));
}
但是在这一步我没有访问 currentRoute
其次 - 这将一个 API 划分为 2 个不同的 API - 第一次使用 csrf 验证第二次 - 不是。在这种情况下 - 我们创建了 2 个不同的服务器,它们监听 2 个不同的端口。
但我会只使用一个应用程序来做到这一点。可能吗?
在 csurf github 页面上有一个忽略路由的完整示例。