2015-01-15 8 views
1

У меня есть веб-приложение, которое разделяется на два отдельных модуля (клиент и сервер). На сервере установлены службы REST и клиентские службы REST для получения данных. Я хочу, чтобы сервер был защищен от атак CSRF. Таким образом, любой клиент POST/PUT/DELETE требует передать токен csrf в заголовке, а значение токена должно быть равно csrfToken, сохраненному в сеансе. Мой вопрос в том, что маркер csrf генерируется сервером, как клиентское приложение может получить значение токена?

Если клиент после входа в систему отправляет запрос GET, сервер генерирует токен csrf, он сохраняет его как атрибут сеанса и отправляет его обратно клиенту в ответ или является лучшим решением?Передача токена csrf в клиентское приложение

+0

Защита CSRF не имеет никакой цели в протоколе REST. – holmis83

+0

@ holmis83 https://www.owasp.org/index.php/REST_Security_Cheat_Sheet#Protect_against_cross-site_request_forgery – sp00m

+0

@ sp00m На этой странице много chaddle. Однако, возможно, я неправильно понял значение ОП «ОТДЫХ». – holmis83

ответ

0

его до вас, что вы хотите, если хотите клиентскую сторону csrf или нет?

CSRF токен всегда создается на целевой странице или Первый запрос пользователя в черном ящике логике серверных серверной ...

стороны клиента означает, что если JSP, то вы можете легко писать код, потому что JSP в ServerSide и все ПРЕИМУЩЕСТВА как программист, которого мы знаем ...

Если в приложении мы используем фреймворк js или js [например, extjs, dojo взял комплект, angularjs, yui или любой другой], и наш взгляд выглядит как .html-файл, тогда я чувствую, что мы идем с целевая страница ....

целевая страница означает первую страницу ... или если мы используем ajax, тогда сначала запрос ajax от пользователя к серверу когда пользователь нажимает на наш сервер ...

с помощью первого запроса или целевой страницы ajax вы можете сгенерировать один токен и сохранить в сеансе как токен csrf после этого всего сеанса этого пользователя, вы должны проверить токен csrf, записав фильтр. .

фильтр должен проверить сеанс пользователя не утратившим пользователю войти в систему пользователя и разрешения на базу вашего приложения и сессии, CSRF токен ...

так, как каждый новый пользователь должен иметь, чтобы пройти с вашей целевой страницы [страница входа] и получил один сеанс на стороне сервера, поэтому любой фиктивный запрос не разрешен и один уровень безопасности у вас есть

Enjoy :)

+0

Вопрос заключается в том, как разделить токен, созданный на странице пользовательского интерфейса, с помощью приложения REST. Как стратегия сеанса с одним и тем же пользователем открывает две разные вкладки в браузере? Что касается стратегии ajax, можно создать форму для отправки этого Ajax-запроса с вредоносного сайта. – 11thdimension

+0

Для этого нужно разработать логику .. Я работаю с приложением REST .. для этого нужно применять логику для создания токенной строки ... вы также можете применить весеннюю безопасность с приложением для отдыха – Minesh

+0

Я не понял ваш последний комментарий, однако как бы весна безопасности делиться своим токеном CSRF с отдельным приложением пользовательского интерфейса? Предположим, что он работает на nodejs (Expressjs). – 11thdimension

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