2015-09-30 6 views
0

Я обновил приложение (простой API). Мы используем библиотеку csurf для предотвращения запросов CSRF.Использовать csrf только для определенных маршрутов в restify

Но мне не нужно использовать проверку CSRF на нескольких маршрутах.

Первая идея, которая, как мне кажется, создает массив с маршрутами, для которых мне не нужно использовать csrf и проверять текущий маршрут.

var routesNoCSRF = ['/api/route1', '/api/route2']; 
if (routesNoCSRF.indexOf(currentRoute) === -1) { 
    server.use(csrf({ 
    cookie: true, 
    ignoreMethods: ['HEAD', 'OPTIONS'] 
    })); 
} 

Но на данном этапе я не имел доступа к currentRoute

Во-вторых - это водораздел один API для 2-х различных Apis - и для первого использования CSRF проверки на второй - нет. В этом случае мы создаем 2 разных сервера, которые прослушивают 2 разных порта.

Но я бы сделал это, используя только одно приложение. Является ли это возможным ?

+0

Вы уже получить это выяснили? – HeadCode

ответ

1

Существует полный пример игнорирования маршрутов на странице csurf github.

https://github.com/expressjs/csurf

+0

Спасибо за ответ, у нас много маршрутов, и мы требуем маршрутов автоматически (все файлы из папки). Для этого случая мы можем использовать 2 папки для маршрутов - один (для которого нам не нужен csrf), а второй - для которого нам нужна проверка csrf. Но теперь мы решили другое решение - использовать 2 папки с маршрутами, 2 узла серверов и использовать ENV_VARIABLE для обнаружения, если мы будем использовать csrf или нет (в app.js). – yAnTar

Смежные вопросы